Facebook 有 publish_actions 但仍然抛出 (#100) 没有权限为某些用户发布视频

Posted

技术标签:

【中文标题】Facebook 有 publish_actions 但仍然抛出 (#100) 没有权限为某些用户发布视频【英文标题】:Facebook has publish_actions but still throws (#100) No permission to publish the video for some users 【发布时间】:2016-11-01 02:09:25 【问题描述】:

我的代码中有以下权限,并且 Facebook 已批准 public_profile、publish_actions、publish_pages。为什么我可以以编程方式为某些用户发布视频,而其他用户却遇到权限问题?

scope: 'email,publish_actions,publish_pages'

上传代码

  def start_upload
    response = request(upload_phase: :start, file_size: File.size("#episode_file_path"))
    if response.code == '200'
      @upload_session_id = JSON.parse(response.body)["upload_session_id"]
    else
      raise response.body
    end
  end

  def transfer_upload
    response =JSON.parse(transfer_file)
    if response["start_offset"] != response["end_offset"]
      raise response
    end
  end

  def finish_upload
    response = request(upload_phase: :finish, title: @title, description: @description)
    if response.code != '200'
      raise response.body
    end
  end

  def url
    "https://graph-video.facebook.com/v2.3/#@post_id/videos"
  end

  def episode_file_path
    "#Rails.root/public/episode_soundbite/#@episode_id/video.mp4"
  end

  def request(params)
    Net::HTTP.post_form(URI.parse(url), params.merge(access_token: @oauth_token, upload_session_id: @upload_session_id))
  end

  def transfer_file
    command =  "curl -X POST \"#url\"  \
                      -F \"access_token=#@oauth_token\" \
                      -F \"upload_phase=transfer\" \
                      -F \"start_offset=0\" \
                      -F \"upload_session_id=#@upload_session_id\" \
                      -F \"video_file_chunk=@#episode_file_path\""

    response = ''
    IO.popen('-')  |p|
      if p.nil? then
        $stderr.close
         exec command
      end
      response  = p.read
    
    return response
  end

【问题讨论】:

用户可以选择不向您的应用授予该权限。你需要处理这种情况 我问一个用户是否这样做,他们给我发了一张在他们的 facebook 帐户上启用的 public_action 的屏幕截图,但它仍然对他们不起作用。我需要 manage_pages 权限吗? 如果要发布到页面,需要manage_pages。 这就是答案。不知道为什么有些用户仍然能够使用 public_posts 选项发布到页面,以及为什么其他用户需要 manage_pages 选项。谢谢! 【参考方案1】:

我必须将 manage_pages 添加到范围

【讨论】:

以上是关于Facebook 有 publish_actions 但仍然抛出 (#100) 没有权限为某些用户发布视频的主要内容,如果未能解决你的问题,请参考以下文章

facebook评论页面中的publish_actions在哪里?

Android Facebook 墙贴 - publish_action 权限未授权

验证 Facebook publish_actions 权限时遇到问题

Facebook SDK 3.8:未返回权限 publish_actions

Facebook publish_action权限不适用于发布

Facebook - 需要 publish_actions 权限,无法提交应用以供审批