Abhik
Abhik

Reputation: 1940

Posting video to facebook from the browser using the graph API

I am trying to post a video from the browser to an edge sing the below code

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
        })

But it gives a 400 bad request error.The response is

{
   "error": {
      "message": "Bad signature",
      "type": "OAuthException",
      "code": 1,
      "fbtrace_id": "FYc5192NtSs"
   }
}

Can you please tell me what am I doing wrong ?

Upvotes: 0

Views: 625

Answers (1)

Mohammad Shabaz Moosa
Mohammad Shabaz Moosa

Reputation: 1515

I made the following utility function

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);
        });
}

Which can be called like this for a video.

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

Please ensure you use a token which was acquired using v2.5 of the API. You need publish_actions, publish_pages (for pages) permission to post

Debug your access token here

Upvotes: 1

Related Questions