0

关于Instagram 的实时 API有一些线索,目前尚不清楚是 Instagram 的错还是试图使用它的开发人员。

我的问题是第一个订阅请求。我认为我的请求是正确的,但我不断收到错误“callback_url”。URL 必须以 \"http://\" 或 \"https://\"" 开头

请求是:

curl -X POST 'httpiptions?client_id=CLIENT_ID&client_secret=CLIENT_SECRET&object=tag&object_id=love&aspect=media&callback_url=http://myurl.com/subscribe' 

此外,当我将请求类型更改为 GET 而不是 POST 时,我会收到一条带有空数据的成功消息 200,并且 Instagram 不会向我的 callback_url 调用 POST 请求。

所以我认为有两个问题:1)请求应该是POST(对我不起作用)还是GET(对我有用)。2)为什么instagram返回空数据并且不POST到callback_url。

4

1 回答 1

0

它必须是一个 POST。

为了成功订阅并从您的订阅请求中收到来自 POST 的响应,您的回调 URL 必须做一些额外的工作,即在您发送订阅请求后立即响应从 Instagram 发送的 GET 请求,验证您是回调 URL 的真正所有者。

总之,除了接收 POST 之外,您的回调 URL 还必须响应 GET 请求并回显hub.challenge在该 GET 请求中发送的参数。

查看文档中对该过程的详细描述:http: //instagram.com/developer/realtime/

更新:

现在我可以重现您描述的错误。

问题在于您的 CURL 调用。您应该发送 POST 请求以及适当的 POST 参数,但您的调用正在执行 POST 发送参数作为 URL 中的 GET。实际上 API 应该拒绝整个请求,但它似乎部分处理了参数。

将 CURL 更改为:

curl -F 'client_id=CLIENT-ID' \
     -F 'client_secret=CLIENT-SECRET' \
     -F 'object=user' \
     -F 'aspect=media' \
     -F 'verify_token=myVerifyToken' \
     -F 'callback_url=http://YOUR-CALLBACK/URL' \
     https://api.instagram.com/v1/subscriptions/

这会执行 POST 并正确发送您的参数。

于 2014-12-11T23:07:51.483 回答