我有帖子media_id在我手中,我想知道是否有办法从中创建有效的网址。
例如,如果您手上有一个 Facebook 帖子 ID (xxxx_yyyy),您可以从中创建以下 url (http://facebook.com/ http://facebook.com/xxxx/posts/yyyy)并直接访问原始帖子。
有没有办法在 Instagram 上做到这一点?我手中有 media_id (和 user_id),是否可以创建单个帖子网址?
我必须实现客户端 javascript 来解决这个问题,Seano 的答案非常宝贵,我很高兴他们提到了 BigInteger 库的使用,但是我想使用 BigInteger 库提供完整的实现,事实证明这是非常必要的。
我从下载了 BigInteger 库https://www.npmjs.com/package/big-integer https://www.npmjs.com/package/big-integer.
这是对我来说很有效的功能。
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 + '/';
}
我只是想指出,在分配重新计算的 media_id 时,使用 toString() 非常重要,该值仍然是一个字符串,以确保使用整个数字(在我的例子中,media_id 的长度为 19 个字符)。 BigInteger 文档还指出了这一点...
请注意,大于 9007199254740992 且小于 -9007199254740992 的 Javascript 数字不是精确表示的数字,也不会产生精确的结果。如果要处理该范围之外的数字,最好传入字符串。
Cheers!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)