Tam*_*ran 3 php facebook facebook-graph-api fbsdk
我尝试使用 PHP SDK 发布包含多个视频和照片的帖子。我使用批量请求上传视频和照片并获取了 id。然后我使用 Attached_media 传递媒体 ID 和发布数据。对于单张或多张照片来说效果很好。但不适用于单个视频或多个视频。我收到此错误:“图表返回错误:(#10) 应用程序没有执行此操作的权限”,每当 Attached_media 中包含视频 id 时。
这是我使用的代码:
$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();
Run Code Online (Sandbox Code Playgroud)
有什么办法可以解决这个问题吗?谢谢。
事实是,您无法混合照片和视频。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>
Run Code Online (Sandbox Code Playgroud)
和应该进行 URL 编码file_url。description
要发布多张照片,您首先要“上传”照片,因此您将拥有 ID。您设置为attached_media参数的那些 id。
获取照片 ID:
POST https://graph.facebook.com/<page id>/photos?url=<public file URL>&access_token=<access token>&published=false
Run Code Online (Sandbox Code Playgroud)
注意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>"}
Run Code Online (Sandbox Code Playgroud)
PS 此方法假设您已将内容上传到其他地方,并且您拥有可访问该内容的公共 URL。如果您有原始文件并且想将它们上传到 Facebook,那么您必须采用另一种方法。
| 归档时间: |
|
| 查看次数: |
2481 次 |
| 最近记录: |