Python Facebook 从外部上传视频 link

Python Facebook upload video from external link

我正在尝试从外部 url 将视频上传到 Facebook。但是当我 post 它时我得到了错误。我尝试使用本地视频,一切正常。

我的简单代码是:

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 时,也是同样的消息。例如,当我尝试使用我的用户访问令牌时出现此错误消息,而如果我使用页面访问令牌则不会。

我从未使用过 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?