使用图形API从浏览器向Facebook发布视频

时间:2016-02-14 09:46:20

标签: javascript facebook facebook-graph-api facebook-javascript-sdk

我正在尝试将一个视频从浏览器发布到边缘,然后唱下面的代码

var url = "https://graph.facebook.com/v2.5/" + this.uid + "/videos" + "?access_token=" + token;
        var formData = new FormData();
        formData.append("source", file);
        formData.append("access_token", token);
        return $.ajax({
            url: url,
            contentType: false,
            processData: false,
            type : "POST",
            data: formData
        })

但是它给出了400个错误的请求错误。响应是

{
   "error": {
      "message": "Bad signature",
      "type": "OAuthException",
      "code": 1,
      "fbtrace_id": "FYc5192NtSs"
   }
}
你能告诉我我做错了什么吗?

1 个答案:

答案 0 :(得分:1)

我做了以下实用功能

var makeApiRequest: function(accessToken, config, successCallback, errorCallback) {
    var baseUrl = 'https://graph.facebook.com/v2.5/';

    // parse config and defaults
    var config = config || {},
        url = config.url || 'me',
        data = config.data || {},
        method = config.method || 'GET';

    config.url = baseUrl + url + '&access_token=' + accessToken;

    // make the api request
    $.ajax(config)
        .done(function(data) {
                if (!!successCallback) {
                    successCallback(data);
                } else {
                    console.log(data);
                }
            }
        ).error(function(xhr) {
         errorCallback(xhr);
        });
}

视频可以像这样调用。

makeApiRequest(
'<token>',
{
    url: 'me/videos',
    data: {file_url:'http://example.com/path/to/file.mp4', description: 'title'},
    method: 'POST'
 }, successCb, errorCb);

请确保您使用的是使用API​​的v2.5获取的令牌。您需要publish_actions,publish_pages(用于页面)发布

的权限

调试您的访问令牌here