2017-08-28 93 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在授權過程中映射到您的內部用戶! 另請注意,無論出於何種原因它都被包裹在一個數組中......