Instagram:使用媒体ID

时间:2015-09-16 13:48:40

标签: instagram instagram-api

说,我有一个媒体ID(例如1075297042445691366_195350057)。如何使用oEmbed API获取嵌入HTML?

This API只接受短代码(与媒体ID不同)。

或如何获取媒体ID的短代码?

2 个答案:

答案 0 :(得分:0)

API返回的任何媒体对象都有一个名为“link”的字段,该字段是媒体的URL表示形式。您可以将此链接用作oembed端点的“url”参数。

答案 1 :(得分:0)

如果将来有人发现这个问题,我会花很长时间尝试解决它。​​

尼克汉肖(Nick Hanshaw)为this answer贡献了99.9%的功劳。我所做的只是包括一个到BigInteger.js库的CDN链接,该链接是必需的,但不是Nick的代码的一部分。目前,这对我来说是有效的,方法是将Media ID作为字符串传递给函数,然后返回Instagram照片URL的完整字符串:

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/big-integer/1.6.40/BigInteger.min.js"></script>
<script type="text/javascript">
    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 + '/';
    }
</script>