2016-03-05 68 views
0

我目前遇到以下問題:從Graph Api中獲取郵件附件的圖像url

我正在構建一個系統,可以處理來自Facebook的服務請求。我得到的所有對話我的頁面上有這樣的要求:

PAGE_ID/conversations?fields=messages{message, attachments} 

這將返回以下數據(例如),當消息是圖像:

{ 
     "message": "", 
     "attachments": { 
      "data": [ 
      { 
       "id": "IMAGE_ID", 
       "mime_type": "image/jpeg", 
       "name": "IMAGE_NAME.jpg", 
       "size": null, 
       "image_data": { 
       "width": 720, 
       "height": 960, 
       "render_as_sticker": false, 
       "url": "https://scontent.xx.fbcdn.net/hphotos-xpl1/v/wl/t34.0-12/IMAGE_NAME.jpg?oh=SOME_CHANGING_STRING&oe=SOME_OTHER_CHANGING_STRING", 
       "image_type": 1, 
       "max_width": 720, 
       "max_height": 960 
       } 
      } 
      ] 
     }, 
     "id": "MESSAGE_ID" 
}, ... 

我第一次存儲在圖像URL在我自己的數據庫中,但在一天之後,URL在上面數據中指出的部分發生變化。所以我最初的計劃是做一個額外的要求,這樣的圖形API,以獲取新的URL:

MESSAGE_ID/attachments 

但問題是,我不能這個請求,本場「IMAGE_DATA得到的圖像數據'找不到。我似乎無法找到另一種獲取更新圖像url的方式,除了再次檢查對話邊緣(由於此請求的延遲而不理想)。

有沒有人有任何線索如何有效地獲得新的圖像網址?

任何幫助,非常感謝!

回答

1

沒有其他辦法。 image_data僅在會話端點上可用。然而,不要只是存儲CDN緩存URL,爲什麼不簡單地下載附件並將其保存在服務器上?附件不太可能發生變化,因此這是您唯一的選擇,除非您想一遍又一遍地更新所有對話,以檢索當前的CDN緩存URL。

備註:您只能獲取該圖像的網址btw,但不能用於其他附件,例如PDF。

+0

感謝您的回答!將圖像存儲在我的服務器上的確是我可以看到的選項。但是,我發現Message邊緣也可以爲我提供圖像數據:'MESSAGE_ID?fields = attachments',而不是'MESSAGE_ID/attachments'。我發現這在文檔中有點不清楚。 – bashoogzaad

相關問題