Javascript 在React Native中使用GraphRequest将mp4发布到Facebook

Javascript 在React Native中使用GraphRequest将mp4发布到Facebook,javascript,facebook-graph-api,react-native,mp4,react-native-fbsdk,Javascript,Facebook Graph Api,React Native,Mp4,React Native Fbsdk,我正在使用react native fbsdk中的GraphRequest从我的应用程序发布到FB。具体地说,我正在尝试发布一个指向外部托管的mp4视频的链接,因此在类似https://img.myapp.com/image_id.mp4。以下是我请求的代码: return new Promise(function(resolve, reject) { const post = new GraphRequest('/me/feed', { httpMethod: 'GET',

我正在使用
react native fbsdk
中的GraphRequest从我的应用程序发布到FB。具体地说,我正在尝试发布一个指向外部托管的mp4视频的链接,因此在类似
https://img.myapp.com/image_id.mp4
。以下是我请求的代码:

return new Promise(function(resolve, reject) {
  const post = new GraphRequest('/me/feed', {
    httpMethod: 'GET',
    version: 'v2.9',
    ...payload,
  }, (err, result) => {
    if (err) {
      reject(err);
    }
    resolve();
  });

  new GraphRequestManager().addRequest(post).start();
});
这是
有效载荷

  {
    httpMethod: 'POST',
    parameters: {
      type: { string: 'article' },
      message: { string: message || '' },
      caption: { string: 'Powered by MyApp' },
      link: { string: media.url },
      ref: { string: uuid },
      picture: { string: media.url },
      source: { string: media.url },
      properties: [
        { name: { string: 'type' }, text: { string: 'video.other' } },
      ], 
  }
我的核心问题是,我想发布一个mp4链接到FB,并看到视频循环(因为它只有几秒钟长)。我很确定这个
属性
属性是我应该指定类型、高度、宽度和其他属性的地方,我会为其他地方添加一个元标记,以便在链接中传递有关视频的信息。然而, 使用
properties
的编写方式,我得到了以下错误:
graph-api错误:参数“properties”的意外值。请求参数必须是带有“字符串”字段的对象。

下面是Graph API-POST docs()中
属性
块的屏幕截图:


我已经为这个对象(或数组?)尝试了尽可能多的不同配置,它们都返回了这个错误。是否有人熟悉使用GraphRequest发布mp4视频,或者至少可以就如何使用
properties
参数向我提供建议?提前谢谢

要使MP4显示为内联可播放视频(并且,对于那些启用了它的人,在新闻提要中自动播放),您需要在发布视频之前上传视频

由于您提到了从外部链接发布,只要您的目标至少是Graph API的2.3版,您就可以将URL发送到视频文件,而不是上载原始数据。需要注意的一个限制是,您提供的URL上的视频需要在5分钟内由Facebook的scraper下载。如果你有一个大的视频或一个缓慢的服务器,最好使用分块上传过程

以下是有关视频上载过程的更多信息:

首先,请确保使用
/videos
端点,而不是
/feed

new GraphRequest('/me/videos'
您将使用的参数与
/feed
端点稍有不同,可以在此处引用:

您需要特别查看将url发送到视频文件的
文件url
参数,如果希望视频自动发布到用户的新闻提要,则
是\u explicit\u share
参数。您可以使用
说明
而不是
消息
,您提供的文本将显示在墙上的柱子上。将其与原始代码结合起来:

httpMethod: 'POST',
parameters: {
  file_url: { string: media.url },
  description: { string: message || '' },
  is_explicit_share: { string: 'true' },
  ...
}