【问题标题】:Error using instagram-node使用 Instagram 节点时出错
【发布时间】:2017-08-06 08:19:17
【问题描述】:

这是我在 node.js 服务器上运行的代码。我有从 Instagram 开发人员页面中定义的 OAuth2.0 协议获得的正确访问令牌。

function getMedia(accessToken) {
    var instagram = require('instagram-node').instagram();
    instagram.use({
      access_token: accessToken
    });
    instagram.user_self_media_recent(function(err, medias, pagination, remaining, limit) {
      if(err) {
        console.log(err);
      }
      console.log(medias);
    });
}

我在我的错误响应中得到了这个:

{ Error: getaddrinfo ENOTFOUND api.instagram.com api.instagram.com:443
    at errnoException (dns.js:28:10)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)
  code: 'ENOTFOUND',
  errno: 'ENOTFOUND',
  syscall: 'getaddrinfo',
  hostname: 'api.instagram.com',
  host: 'api.instagram.com',
  port: 443,
  retry: [Function: retry] } 

有谁知道这个错误响应是什么意思?

【问题讨论】:

    标签: node.js instagram


    【解决方案1】:

    快速跟进。我在后端使用 Google 的 Firebase。在“Spark”计划中,您会收到以下警告:

    未配置结算帐户。外部网络无法访问并且 名额受到严格限制。配置结算帐户以删除这些 限制

    我升级到“Blaze”计划,现在从 Instagram 检索数据。

    下面发布的答案表明我需要使用 client_id 和 client_secret 初始化 Instagram 客户端,这是不正确的。我只使用 access_token 获取媒体帖子。

    谢谢

    【讨论】:

      【解决方案2】:

      当您初始化 instagram 客户端时,您应该使用您应用的客户端 ID 和客户端密码。

      instagram.use({
        client_id: INSTA_CLIENT_ID,
        client_secret: INSTA_CLIENT_SECRET,
      });
      

      然后使用您必须的访问令牌来验证特定的 Instagram 用户并代表他们请求媒体。

      instagram.use({
        access_token: accessToken
      });
      instagram.user_self_media_recent(function(err, medias, pagination, remaining, limit) {
        if(err) {
          console.log(err);
        }
        console.log(medias);
      });
      

      当您第一次初始化您的 instagram 节点客户端时,您必须使用您在注册应用程序时从 instagram 收到的身份验证凭据here

      【讨论】:

      • 搞定了。不需要用client_id和client_secret初始化,accessToken就足够了。
      猜你喜欢
      • 2015-09-06
      • 2015-10-24
      • 1970-01-01
      • 1970-01-01
      • 2017-12-07
      • 2021-07-15
      • 2018-02-02
      • 2020-09-19
      • 1970-01-01
      相关资源
      最近更新 更多