如何使用Facebook Graph API发布视频

5

我正在尝试使用Facebook Graph API从我的Nodejs服务器发布视频,使用的是npm包Facebook-node-sdk

对于带有消息或图像的常规帖子,我可以成功发布,但是对于视频则不行

以下是我的代码:

var FB = require('fb');
var request = require('request');
FB.setAccessToken('MY_APP_ACCESS_TOKEN');

var params = {};
params['source'] = "@video.3gp";
params['title'] = "test video";
params['video_file_chunk'] = "@video.3gp";




FB.api('me/videos', 'post', params , function (res) {
  if(!res || res.error) {
    console.log(!res ? 'error occurred' : res.error);
    return;
  }
  console.log('Post Id: ' + res.id);
});

视频文件和我的js运行文件在同一个文件夹中。 我遇到了错误代码。
  type: 'FacebookApiException',
  code: 390,
  error_subcode: 1363030,
2个回答

2
根据https://developers.facebook.com/docs/graph-api/video-uploads#errors,错误代码的含义是:

视频上传超时。您的视频上传在完成之前超时了。这可能是由于网络连接缓慢或视频太大所致。

此外,根据https://developers.facebook.com/docs/graph-api/reference/user/videos/#Creating,您需要将视频发布到另一个Graph API端点:

视频必须以multipart/form-data编码并发布到graph-video.facebook.com而不是常规的Graph API URL。

POST /v2.5/{page-id}/videos HTTP/1.1
Host: graph-video.facebook.com

source=%7Bvideo-data%7D

1
请问您能否举个例子,说明如何使用NodeJS实现这个功能? - Stranger B.

1

我使用了Graph REST API将视频从Parse上传到Facebook:

Parse.Cloud.httpRequest({
        method: 'POST',
        url: 'https://graph.facebook.com/v2.5/{page_id}/videos?access_token='+token+'&message='+message+'&file_url='+image,
        success: function(httpResponse) {
            console.log(httpResponse.data);
            response.success("result");
        },
        error:function(httpResponse){
            //console.log("Not logging this");
            console.error(httpResponse.message);
            response.error("Failed to login");
        }
    });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接