2017-08-28 92 views
1

我终于想出了如何创建订阅。它运作良好,每当我添加新媒体时,我都会从Instagram推送。Instagram Subscription API总是只创建1个订阅并覆盖另一个订阅

现在的问题是,我建立了一个机制,以便我们的用户可以将他们的insta同步到我们的网站。所以我应该可以创建多个订阅到同一个client_id。从我了解的订阅内容来完成。现在,当另一个用户出现并创建新订阅时,另一个用户(由另一个instagram帐户创建)正在被删除并被替换。我收到了与我的其他订阅完全相同的subscription_id的成功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为每个呼叫的唯一字符串,以测试是否这是问题的文档说每个请求都应该是个别的,但是同样的问题并不重要。

沙盒模式和实时模式存在问题。

还有什么我在这里失踪?我是否弄错了整个功能?是否只有一种方法可以为每个client_id创建一个订阅,但如果是这样,为什么它会让我返回一个subscription_id?

回答

0

好的我已经通过网上冲浪找到了自己的位置我发现了一个暗示我的提示: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,您可以使用用户的区分d在授权过程中映射到您的内部用户! 另请注意,无论出于何种原因它都被包裹在一个数组中......