【问题标题】:Instagram: Get oEmbed using Media IDInstagram:使用媒体 ID 获取 oEmbed
【发布时间】:2019-01-21 23:54:04
【问题描述】:

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

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

或者如何获取媒体 ID 的简码?

【问题讨论】:

    标签: instagram instagram-api


    【解决方案1】:

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

    【讨论】:

    • OP 没有链接或 URL,它们有媒体 ID。您如何将该媒体 ID 转换为链接/URL/短代码?不知道为什么要勾选这个,因为它根本没有解决或回答问题(除非我误读了?)
    【解决方案2】:

    如果以后有人发现这个问题,我花了很长时间试图解决它。

    此实现值得 99.9% 归功于 Nick Hanshaw 的 this answer。我所做的只是包含一个指向 BigInteger.js 库的 CDN 链接,这是必需的,但不是 Nick 代码的一部分。这目前对我有用,方法是将媒体 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多