【问题标题】:Python Facebook upload video from external linkPython Facebook 从外部链接上传视频
【发布时间】:2015-09-04 00:20:02
【问题描述】:

我正在尝试从外部网址将视频上传到 Facebook。但是当我发布它时出现错误。我尝试使用本地视频,一切正常。

我的简单代码是:

answer = graph.post(
        path="597739293577402/videos",
        source='https://d3ldtt2c6t0t08.cloudfront.net/files/rhn4phpt3rh4u/2015/06/17/Z7EO2GVADLFBG6WVMKSD5IBOFI/main_OUTPUT.tmp.mp4',
    )

我的错误总是一样的:

FacebookError: [6000] There was a problem uploading your video file. Please try again with another file.

我查看了文档并找到了参数 file_url 但它仍然是同样的问题。

视频的格式是 .mp4,所以它应该可以工作。

有什么想法吗?

显然这个错误信息非常令人困惑。当您有一个不起作用的 access_token 时,这也是同样的消息。例如,当我尝试使用我的用户访问令牌而不是使用页面访问令牌时,我会收到此错误消息。

【问题讨论】:

  • 您是否也获得了您尝试上传的页面的正确权限?您应该使用具有“publish_pages”权限的页面访问令牌,如记录的here
  • 是的,我有!我已经检查了所有权限。现在我正面临一个本地文件的问题,他说我没有权限。但是当我使用图形工具时,我输入了正确的权限,所以我不明白为什么它不起作用。如果我想在页面上发布,我只需要具有页面权限的 access_token 吗?
  • @DaschPyth 您只需要访问令牌即可发布到页面。您是否曾经能够成功发布视频?您是否检查过您对应用的权限?

标签: python facebook facebook-graph-api video upload


【解决方案1】:

我从来没有使用过source,我很确定那是为了从他们的 API 中读取视频数据。相反,在将视频文件 URL 传递给 Facebook Graph API 时,我在有效负载中使用 file_url

请参阅他们的API doc 以了解详情...

tmp.mp4 文件扩展名也可能导致您出现问题。我在使用具有类似非典型文件扩展名的有效视频 URL 时遇到了问题。是否可以在源代码处进行更改,以使 URL 没有 tmp

使用 Requests 模块将有效负载传递到适用于我的 API 的典型负载可能如下所示:

fburl = 'https://graph-video.facebook.com/v2.3/156588/videos?access_token='+str(access)
payload = {'name': '%s' %(videoName), 'description': '%s' %(videoDescription), 'file_url': '%s' %(videoUrl)}
flag = requests.post(fburl, data=payload).text
print flag
fb_res = json.loads(flag)

我还强烈建议您获取permanent page access token。这是减轻 Facebook oAuth 流程复杂性的最佳方式。

facebook: permanent Page Access Token?

【讨论】:

  • 我会把你的答案当作一个好的答案。在获得良好的访问令牌之后,我设法做到了。您谈论的是永久页面访问令牌,但生成它后我无法使其工作。这可能是我的错,因为 Facebook oauth 令牌太乱了!顺便说一句:)
  • @DaschPyth 这是一个获得永久页面访问权限的多步骤过程,我尝试了几次,但如果您使用 cURL 而不是仅使用请求来尝试这样做,它确实有效。
猜你喜欢
  • 2015-11-16
  • 2022-06-30
  • 2011-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 2012-03-28
相关资源
最近更新 更多