javascript - Facebook JS SDK : "(#100) No permission to publish the video" error

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

我正在尝试将视频文件发布到我的 Facebook feed

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

以下是我初始化 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”文件

这是我的 token 拥有的权限:

{
  "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. 这仅在使用页面 token 发布到页面时通过 API 起作用
  3. 从网络共享视频的唯一可能方法是使用共享对话框 https://developers.facebook.com/docs/sharing/reference/share-dialog/

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

关于javascript - Facebook JS SDK : "(#100) No permission to publish the video" error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52651061/

相关文章:

javascript - CSS - Android 键盘上推元素

javascript - 如何将音频 blob 从 javascript 发送到 python?

android - 从您的 Android 应用程序中打开 Facebook native 应用程序

java - Facebook API 如何等待 graphRequestexecuteAsync 完成

php - 如何使用 php graph Api 保存 facebook 个人资料图片

java - facebook sdk java查询使用图形API或url/http从actor_id获取名称

javascript - 如何使用 Javascript for Automation (Yosemite) 与 Pane 中的控件进行交互

javascript - 我怎样才能使用javascript来点击这些元素?

facebook - 既然 Facebook Offline Access 已被弃用,有什么办法可以在 2 小时后访问用户数据吗?

image - 在 https 上托管时,某些带有帖子的图片不会出现