Instagram Subscription API始终只创建一个订阅并覆盖另一个订阅

时间:2017-08-28 08:32:19

标签: instagram instagram-api subscriptions

我终于想出了如何创建订阅。它工作正常,我每次添加新媒体时都会从Instagram上推送。

现在的问题是,我已经建立了一种机制,以便我们的用户可以将他们的insta同步到我们的网站。所以我应该能够为同一个client_id创建多个订阅。根据我的理解订阅是为了做到这一点。现在,当另一个用户出现并创建新订阅时,另一个用户(使用另一个Instagram帐户创建)将被删除并替换。我收到一个成功的Instagram订阅,其订阅与我的其他订阅完全相同。当我使用curl列出订阅时,我只看到订阅时使用subscription_id 0。

{"data": [{"id": 0, "type": "subscription", "object": "user", "object_id": null, "aspect": "media", "subscription_id": 0, "callback_url": "**callbackurlReplacedForSecurityReasons"}], "meta": {"code": 200}}

这怎么可能?

从文档中创建订阅的调用如下所示:

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/

现在我已经将verify_token设置为每个调用的唯一字符串,以便测试是否存在问题,因为文档说它应该对每个请求都是单独的,但它没关系,同样的问题。

Sandbox模式和实时模式存在问题。

我还缺少什么吗?我觉得这个功能错了吗?是否只有一种方法可以为每个client_id创建一个订阅,但如果是这样,为什么它会给我一个subscription_id?

1 个答案:

答案 0 :(得分:1)

好的,我已经通过网上冲浪找到了自己,我发现了一个暗示我的暗示:D真的很难记录订阅如何在Instagram方面工作。

我觉得这个功能完全错了。我的理解是,我必须为每个用户创建一个订阅,如果用户不再需要它,他就会删除它。

它的实际工作原理如下:

您为整个客户(不是每个用户)创建1个订阅。每个用户只需要授权应用程序就可以了!您的回调方法现在将接收已授权客户的用户的所有更新。如果他们不再需要它,他们要么必须取消对您客户的授权(他不太可能找到该选项;))或者您只是不再对收到的消息作出反应。

有点偏离主题,但很高兴知道: 我还想将来自insta的json的结构添加到你的回调中,因为这不是在Instagram方面记录的(你不知道自己得到了什么而没有自己测试)

发布新媒体时收到的json如下所示:

[{
"object": "user",
"object_id": "4857061161",
"changed_aspect": "media",
"time": 1502958709,
"data": {
    "media_id": "1583254852313311736_4857061161"
},
"subscription_id": 0

}]

object_id是Instagram用户ID,您可以在授权过程中区分用户并映射到内部用户! 另请注意,无论出于何种原因,它都被包装在一个数组中......