2017-02-09 54 views
0

我在用於播放事件供稿中的視頻的應用中使用Facebook Graph API。我需要讓MP4流URL在我的用戶界面中播放。有些視頻在Feed中顯示爲頂級帖子,而source屬性恰恰是我需要的網址 - 好的!其他人則以附件形式出現(或專輯中的附屬內容)。對於這些,attachment.url(和attachment.target.url)指向一個HTML頁面,而不是MP4流。例如,讓這個特殊的職位與附件欄結果:從帖子附件獲取MP4流的URL

{ 
  "attachments": { 
    "data": [ 
      { 
        "media": { 
          "image": { 
            "height": 405, 
            "src": "https://scontent.xx.fbcdn.net/v/t15.0-10/s720x720/16327151_10154408614623022_6300713295200387072_n.jpg?oh=9b3b65b957e0a3b8fe4fa1429bf49d1c&oe=58FE6EE2", 
            "width": 720 
          } 
        }, 
        "target": { 
          "url": "https://www.facebook.com/fmyman/videos/10154408612948022/" 
        }, 
        "type": "video_autoplay", 
        "url": "https://www.facebook.com/fmyman/videos/10154408612948022/" 
      } 
    ] 
  }, 
  "id": "1851001951851194_1852406911710698" 
} 

唉,沒有MP4流URL,也不是沒有辦法,我可以用它來獲取視頻節點的節點ID。

我的下一個希望是URL中的數字字符串是視頻節點的ID。嘗試一下,Facebook迴應一個錯誤消息,說數字字符串不是一個有效的節點ID。

{ 
  "error": { 
    "message": "Unsupported get request. Object with ID '10154408612948022' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api", 
    "type": "GraphMethodException", 
    "code": 100, 
    "fbtrace_id": "BMqL5viB2je" 
  } 
} 

我最後的嘗試是獲取給定的URL並在其中找到一個視頻節點ID。再次,沒有運氣。 URL指向一個HTML頁面,但沒有什麼明顯的可能是視頻ID或MP4流URL。

所以我在這裏,在我的智慧的結尾,希望有人解決了這個問題:我怎樣才能從飼料郵件附件獲取MP4流URL?

+0

該視頻歸用戶個人資料所有,因此除非該用戶登錄您的應用並授予其訪問視頻的權限,否則您的應用無法訪問該視頻。 – CBroe

+0

就是這樣!數字串_is_視頻節點ID。問題是我沒有訪問_some_視頻節點的權限。我會更新我的答案。謝謝@CBroe。 – GdV

回答

0

事實證明,URL中的數字字符串確實是視頻節點ID。我已將錯誤消息解釋爲表示不是,而這意味着我沒有權限訪問特定的視頻節點(例如,如果視頻創建者將其帳戶配置爲禁止Facebook平臺訪問)。

具體回答我的問題:

  1. 獲取attachment.url值,例如「https://www.facebook.com/fmyman/videos/10154408612948022/」。
  2. 提取數字字符串,例如「10154408612948022」。
  3. 獲取具有該ID的節點,請求source字段。
  4. 如果Facebook沒有迴應有錯誤,則source字段是MP4流的URL。