我正在尝试从外部网址上传视频到脸书。但是当我发布它时我收到了错误。我尝试使用本地视频,一切正常。
我的简单代码是:
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不起作用时,这是相同的消息。例如,我在尝试使用用户访问令牌时出现此错误消息,而不是在使用页面访问令牌时。
答案 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流程复杂性的最佳方式。