从媒体ID获取instagram发布网址

mag*_*ski 2 api instagram

我手上有media_id帖子,我想知道是否有一种方法可以从中创建有效的网址。

例如,如果您手上有一个Facebook帖子ID(xxxx_yyyy),则可以从中创建以下URL(http://facebook.com/ xxxx / posts / yyyy)并直接访问原始帖子。

有没有办法在Instagram上做到这一点?拥有media_id(和user_id)之后,是否可以创建一个帖子网址?

Nic*_*haw 6

我必须实现客户端JavaScript来解决这个问题,Seano的回答非常宝贵,我很高兴他们提到使用BigInteger库,但是我想使用BigInteger库提供完整的实现,事实证明这是非常必要的。

我从https://www.npmjs.com/package/big-integer下载了BigInteger库。

这是最适合我的功能。

function getInstagramUrlFromMediaId(media_id) {
    var alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
    var shortenedId = '';
    media_id = media_id.substring(0, media_id.indexOf('_'));

    while (media_id > 0) {
        var remainder = bigInt(media_id).mod(64);
        media_id = bigInt(media_id).minus(remainder).divide(64).toString();
        shortenedId = alphabet.charAt(remainder) + shortenedId;
    }

    return 'https://www.instagram.com/p/' + shortenedId + '/';
}
Run Code Online (Sandbox Code Playgroud)

我只想指出,在分配重新计算的media_id时,toString()的用法非常重要,该值仍然是一个字符串以确保使用完整的数字(在我的情况下,media_id为19个字符长)。BigInteger文档还说明了这一点...

请注意,大于9009199254740992且小于-9007199254740992的Javascript数字不能精确表示,因此不会产生确切的结果。如果要处理的数字超出此范围,则最好传入字符串。

干杯!