Facebook Api例外:尝试使用图形API在Facebook上传视频。它分为3个步骤

时间:2016-05-09 07:09:44

标签: facebook-graph-api

第1步已成功完成。

在Step2中我收到错误。

[error] => Array
                (
                    [message] => Service temporarily unavailable
                    [type] => OAuthException
                    [is_transient] => 1
                    [code] => 2
                    [error_subcode] => 1363030
                    [error_user_title] => Video Upload Time Out
                    [error_user_msg] => Your video upload timed out before it could be completed. This is probably because of a slow network connection or because the video you're trying to upload is too large. Please try again.
                    [fbtrace_id] => A8p/+Nw29+5
                )

请帮忙。

1 个答案:

答案 0 :(得分:0)

您的文件太大,请尝试使用可恢复的分块上传视频。 例如,上传一个大文件the_sample_file.mp4,即152043520字节。第一个请求初始化上传会话并告诉服务器视频大小:

  curl \
  -X POST \
  "https://graph-video.facebook.com/v2.3/1533641336884006/videos"  \
  -F "access_token=XXXXXXXXX" \
  -F "upload_phase=start" \
  -F "file_size=152043520"

来自服务器的响应指定要上载的第一个块:

{"upload_session_id":"1564747013773438","video_id":"1564747010440105","start_offset":"0","end_offset":"52428800"}

此处服务器希望您上传[0,52428800]部分the_sample_fle.mp4。为此,您需要根据开始和结束偏移将文件切片为块,并使用传输请求发送这些块。

准备好使用正确的start_offset和end_offset上传块后,您可以发送传输请求以上传块,并获取下一个块的偏移量。

您可以使用UNIX命令split -b {X} m {filename}拆分视频,这会将{filename}拆分为多个部分,每个部分为X MB。

您应该能够在Facebook Api指南中找到详细信息