我正在尝试将视频文件发布到我的Facebook提要中

我的应用程序处于开发模式

这是我初始化SDK的方法:

$(document).ready(function() {
    initFacebook();
});

function initFacebook(){
  window.fbAsyncInit = function() {
    FB.init({
     appId      : '2xxxxxxxx7',
     cookie     : true,
     xfbml      : true,
     version    : 'v3.1'
    });

    FB.AppEvents.logPageView();
  };

  (function(d, s, id){
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     js.src = "https://connect.facebook.net/en_US/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'facebook-jssdk'));
}


这是我的登录方式:

var FB_ACCESS_TOKEN = null;
var FB_USER_ID = null;

FB.login(function(response) {
   if (response.status === 'connected') {
     FB_ACCESS_TOKEN = response.authResponse.accessToken;
     FB_USER_ID = response.authResponse.userID;
   }
}, {scope: 'publish_video'});


然后,我有一个文件输入及其事件回调:

<input id="video-picker" type="file"/>

$("#video-picker").change(function (event) {
   var file = this.files[0];
   post(file);
});


现在我想发布:

function post(file){
  var formData = new FormData();
  formData.append('title', "My awesome video title");
  formData.append('description', 'My awesome video');
  formData.append('source', file);
  var url = 'https://graph-video.facebook.com/v3.1/' + FB_USER_ID + '/videos?access_token='+FB_ACCESS_TOKEN;
  $.ajax({
    type: "POST",
    url: url,
    data: formData,
    contentType: false,
    processData: false,
    success: function(data){
      console.log("SUCCESS", data);
    },
    error: function(data) {
      console.log("ERROR", data);
    }
  });
}


但我收到以下错误:

{
   "error": {
      "message": "(#100) No permission to publish the video",
      "type": "OAuthException",
      "code": 100,
      "fbtrace_id": "D16rmDQzzT6"
   }
}


我不明白哪里出了问题:


我添加了“ publish_video”权限
我正在尝试上传“ .mov”文件


这是我的令牌具有的权限:

{
  "data": [
  {
    "permission": "publish_video",
    "status": "granted"
  },
  {
    "permission": "public_profile",
    "status": "granted"
  }
  ]
}


有什么想法怎么了?

最佳答案

会回答我自己的问题:

我在Facebook开发人员小组https://www.facebook.com/groups/fbdevelopers/permalink/1966752140034957/上问了同样的问题

一个人给了我一个解释:


无法通过API发布到用户的时间轴(可能是在2018年8月1日之后发生)
仅当使用页面令牌发布到页面时,这才通过API起作用
从Web共享视频的唯一可能方法是使用“共享对话框” https://developers.facebook.com/docs/sharing/reference/share-dialog/


这不是我想做的,但至少现在很清楚

关于javascript - Facebook JS SDK:“(#100)没有发布视频的权限”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52651061/

10-10 02:55