javascript - Facebook JS SDK:“(#100) 没有发布视频的权限”错误
问题描述
我正在尝试将视频文件发布到我的 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/
这不是我想做的,但至少现在很清楚
推荐阅读
- c# - c# emgu.cv 试图复制 mat.Data returnl null
- html - css动画和角度:无法为角度项目的溢出页面成功实现“缓入缓出”动画
- raku - 无法将地图放在接收器上下文中
- sql-server - 为什么我的 Switch 语句没有按预期工作?
- python-3.x - 为什么我在 Ubuntu 18.04 终端上运行 anaconda-navigator 时出现 X11 连接中断:错误?
- sql - 重新部署 SQL Server 作业返回指定的@name ('') 已存在
- jquery - 如何将选择列表中的选定项目绑定到剃刀视图中的 if 条件
- java - java.lang.ClassNotFoundException: org.springframework.aop.Pointcut 错误,同时启动 weblogic12c 服务器
- c# - 如何找到给定点上方和下方的最近点?
- git - Jenkins 不显示配置的 git 凭据