我尝试使用PHP SDK发布包含多个视频和照片的帖子。我使用批量请求上传了视频和照片,并获得了ID。然后我使用attached_media传递媒体ID和帖子数据。单张或多张照片的效果很好。但不适用于单个视频或多个视频。我收到此错误:" Graph返回错误:(#10)应用程序没有此操作的权限"只要视频的ID包含在attached_media中。
以下是我使用的代码:
$fb = $this->init(); try{ // Returns a Facebook\FacebookResponse object
$publishData = [ 'message' => $post['content']];
if(count($media_ids) > 0){
$publishData ['attached_media'] = [];
foreach($media_ids as $key => $media_id){
array_push($publishData['attached_media'],'{"media_fbid":"' . $media_id . '"}');
}
}
$response = $fb->post(
'/me/feed',$publishData
,
$accessToken
);
}
catch(FacebookResponseException $e){
echo 'Graph returned an error: ' . $e->getMessage();
echo $e->getTraceAsString();
exit;
}
catch(FacebookSDKException $e){
echo 'Facebook SDK returned an error: ' . $e->getMessage();
echo $e->getTraceAsString();
exit;
}
$graphNode = $response->getGraphNode();
无论如何都要解决这个问题。谢谢。
答案 0 :(得分:1)
事实是你不能混合照片和视频。 Facebook 的 API 不允许这样做。你可以:
要发布视频,您必须点击
POST https://graph-video.facebook.com/v10.0/<page id>/videos?file_url=<public file URL>&access_token=<your access token>&published=true&description=<text>
file_url
和 description
应该是 URL 编码的。
要发布多张照片,您首先要“上传”照片,结果您将拥有 ID。您设置为 attached_media
参数的 ID。
获取照片 ID:
POST https://graph.facebook.com/<page id>/photos?url=<public file URL>&access_token=<access token>&published=false
注意 published=false
。这很重要。否则,您将创建一个包含单张照片的页面帖子。
最后制作实际的页面帖子:
POST https://graph.facebook.com/<page id>/feed?message=<text>&access_token=<access token>&attached_media[0]={"media_fbid":"<id>"}&attached_media[1]={"media_fbid":"<id>"}
附言 此方法假定您已将内容上传到其他地方,并且您拥有可使用该内容的公共 URL。如果您有原始文件并且想将它们上传到 Facebook,那么您必须采用另一种方法。
答案 1 :(得分:0)
我知道已经有一段时间了,但我遇到了同样的问题,现在是2020年...
我能够在页面的时间轴上显示视频的唯一方法是使用以下Facebook文档,该文档涵盖了使用PHP的Facebook SDK将视频上传和发布到用户的时间轴。
https://developers.facebook.com/docs/php/howto/example_upload_video
这显然不是最好的方法,但至少视频会在时间轴上显示一些标题和说明。
$data =
[
'title' => 'Your title',
'description' => 'Your description'
];
$response = $fb->uploadVideo($pageId, $videoUrl, $data, $token);
注意:videoUrl
必须是相对路径,因为FacebookFile类使用filesize
之类的功能。
答案 2 :(得分:0)
Facebook 不允许直接在业务页面上发布包含多个视频和照片的帖子。但是,您可以在个人页面上创建帖子,作为替代解决方案,您可以在个人页面上创建帖子并在业务页面上共享。
查看此视频了解更多信息:https://www.youtube.com/watch?v=AoK_1S71q1o