Facebook JS SDK:"(#100) No permission to publish the video"错误



我正在尝试将视频文件发布到我的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/

一个人给了我一个解释:

  1. 无法通过 API 发布到用户的时间线(可能发生在 2018 年 8 月 1 日之后(
  2. 这仅适用于使用页面令牌发布到页面的 API
  3. 从 Web 共享视频的唯一可能方法是使用"共享"对话框 https://developers.facebook.com/docs/sharing/reference/share-dialog/

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

最新更新