Python Facebook从外部链接上传视频

时间:2015-06-18 11:24:52

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

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

我的简单代码是:

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不起作用时,这是相同的消息。例如,我在尝试使用用户访问令牌时出现此错误消息,而不是在使用页面访问令牌时。

1 个答案:

答案 0 :(得分:2)

我从未使用source,我很确定这是用于从API中读取视频数据的。相反,我将视频文件URL传递给Facebook Graph API时,在我的有效负载中使用file_url

为了清楚起见,请参阅他们的API doc ......

tmp.mp4文件扩展名也可能导致您出现问题。我的有效视频网址存在类似问题的非典型文件扩展名。是否可以在源处更改它,以便URL没有tmp

使用“请求”模块向其工作的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?