Facebook graph api 从post附件获取MP4流URL

Facebook graph api 从post附件获取MP4流URL,facebook-graph-api,Facebook Graph Api,我正在一个应用程序中使用Facebook Graph API,该应用程序可以在事件提要中播放视频。我需要得到MP4流URL在我的UI中播放它。一些视频在提要中显示为顶级帖子,源属性正是我需要的URL-耶!其他的则显示为附件(或相册中的子附件)。对于这些,attachment.url(和attachment.target.url)指向HTML页面,而不是MP4流。例如,使用附件字段获取此特定帖子会导致: {   "attachments": {     "data": [       {     

我正在一个应用程序中使用Facebook Graph API,该应用程序可以在事件提要中播放视频。我需要得到MP4流URL在我的UI中播放它。一些视频在提要中显示为顶级帖子,源属性正是我需要的URL-耶!其他的则显示为附件(或相册中的子附件)。对于这些,
attachment.url
(和
attachment.target.url
)指向HTML页面,而不是MP4流。例如,使用附件字段获取此特定帖子会导致:

{
  "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?

结果是URL中的数字字符串确实是视频节点ID。我将错误消息解释为表明它不是,然而,这意味着我没有访问特定视频节点的权限(例如,如果视频创建者将其帐户配置为不允许访问Facebook平台)

具体回答我的问题:

  • 获取
    附件.url
    值,例如“”
  • 提取数字字符串,例如“10154408612948022”
  • 获取具有该ID的节点,请求
    source
    字段
  • 如果Facebook没有回复错误,
    source
    字段是MP4流的URL

  • 该视频归用户配置文件所有,因此除非该用户登录到您的应用并授予其访问其视频的权限,否则您的应用程序无法访问该视频。仅此而已!数字字符串是视频节点ID。问题是我没有访问某些视频节点的权限。我会更新我的答案。谢谢@CBroe。