Php Facebook Graph API:发布包含多个视频和照片的帖子
我尝试使用PHPSDK发布包含多个视频和照片的帖子。我使用批处理请求上传了视频和照片,并获得了id。然后我使用附加的_媒体传递媒体id和post数据。对于一张或多张照片,一切都很好。但不适用于单个视频或多个视频。我遇到了这个错误:“Graph返回了一个错误:(#10)应用程序没有此操作的权限”,只要视频ID包含在附加的#U媒体中 以下是我使用的代码:Php Facebook Graph API:发布包含多个视频和照片的帖子,php,facebook,facebook-graph-api,fbsdk,Php,Facebook,Facebook Graph Api,Fbsdk,我尝试使用PHPSDK发布包含多个视频和照片的帖子。我使用批处理请求上传了视频和照片,并获得了id。然后我使用附加的_媒体传递媒体id和post数据。对于一张或多张照片,一切都很好。但不适用于单个视频或多个视频。我遇到了这个错误:“Graph返回了一个错误:(#10)应用程序没有此操作的权限”,只要视频ID包含在附加的#U媒体中 以下是我使用的代码: $fb = $this->init(); try{ // Returns a Facebook\FacebookResponse objec
$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();
有没有办法解决这个问题。谢谢。我知道已经有一段时间了,但我也遇到了同样的问题,现在是2020年 我能够在页面的时间线中显示视频的唯一方法是使用以下Facebook文档,其中包括使用FacebookSDK for PHP将视频上传和发布到用户的时间线 这显然不是最好的方法,但至少视频出现在时间轴上,带有一些标题和描述
$data =
[
'title' => 'Your title',
'description' => 'Your description'
];
$response = $fb->uploadVideo($pageId, $videoUrl, $data, $token);
注意:
videoUrl
必须是一个相对路径,因为FacebookFile类使用了filesize
等函数,Facebook不允许在业务页面上直接发布包含多个视频和照片的帖子。但是,也可以在个人页面上创建帖子,作为替代解决方案,您可以在个人页面上创建帖子并在业务页面上共享
查看此视频了解更多信息:事实是,您不能将照片和视频混用。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>
请注意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>"}
POSThttps://graph.facebook.com//feed?message=&access_token=&attached_media[0]={“媒体ID”:“”}和附加的媒体[1]={“媒体ID”:“”}
附言。
这种方法假设您将内容上载到其他地方,并且您有公共URL,其中包含此内容。如果你有原始文件,你想上传到Facebook,那么你必须采取另一种方法。你找到办法了吗?你找到办法了吗?
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>"}