Instagram API地理订阅发布错误

时间:2015-08-25 17:39:03

标签: javascript node.js instagram instagram-api

尝试使用Node.js中的npm请求库发出POST请求,如下所示:

var path = require('path');
var express = require('express');
var request = require('request');
var app = express();
module.exports = app;

var data = {
client_id: 'XXX',
client_secret: 'XXX',
object: 'geography',
aspect: 'media',
lat: 35.657872,
lng: 139.70232,
radius: 1000,
callback_url: 'http://localhost:1337/auth/instagram/callback'
};

var options = {
uri: 'https://api.instagram.com/v1/subscriptions/',
method: 'POST',
form: data
};

request(options, 
 function (err, response, body) {
    console.log(body, "body");
    console.log(err, "error");
});

但收到此错误:

{"meta":{"error_type":"APISubscriptionError","code":400,
 "error_message":"Invalid URL. The URL may be on a private network."}}

有关如何解决这个问题的建议吗?

非常感谢任何帮助。现在无法在几天内设置订阅,并被告知我需要在服务器端而不是客户端执行此操作,所以这就是我现在所处的位置。

1 个答案:

答案 0 :(得分:1)

Instagram无法访问您的localhost。 取自API documentation

  

当您添加订阅时,我们会向您的回调网址发送GET请求,以验证是否存在该网址以及是否要创建订阅。当我们有新数据时,我们会将此数据发布到您的回调网址。我们将在本页后面详细介绍此URL需要执行的操作。

您的问题是他们的GET-request失败了,因为他们无法访问您的localhost

您需要在路由器中移植端口1337或使用公共IP。您还可以尝试使用localtunnel.me设置到本地主机的隧道