我的图API有一个奇怪的问题,下面的代码用于为我添加一个帖子到用户新闻Feed,附带照片的缩略图(在'object_attachement'参数中引用)。
但是现在帖子按预期创建,但缩略图为空。我正在使用的photo_id存在于用户的照片集中。
$photo_ID = "3415678920211";//Valid Facebook Photo ID...
$facebook = new Facebook($config);
$attachment = array(
'access_token' => $user_token,
'message' => "Test Message",
'caption' => "THis is a Caption",
'name' => "Test Name",
'description' => "This is a description",
'link' => 'http://url.com/',
'object_attachment' => $photo_id,
);
$response = $facebook->api("/".$userID."/feed/", 'POST', $attachment);
我做错了吗?我确信这确实有用,并且想知道我下面的API是否发生了变化。
[更新] 我注意到,当我指定链接和放大器时,这似乎发生了。 object_attachment在同一个POST中。如果我从上面删除了链接参数,那么我会得到一个稍微好一点的更新,但这并不是很好,因为我希望这篇文章存在的主要原因是添加链接。
答案 0 :(得分:4)
我假设用户授予了user_photos / friends_photos的权限。既然你有photo_id,你可以试试这个。
$pic = $facebook->api("/PHOTO_ID");
$pic_url = $pic->source;
$attachment = array(
'access_token' => USER_ACCESS_TOKEN,
'message' => "...",
'caption' => "...",
'name' => "...",
'description' => "...",
'link' => URL,
'picture' => $pic_url
);
<强> ADDED 强>
您需要将图像存储在本地服务器本地的某个位置。由于这个article
答案 1 :(得分:3)
我认为'object_attachment'=>$photo_id
将不再适用。
您应该将其更改为'picture'=>$photo_url
$photo_Url = "link to your photo";//Valid Facebook Photo ID...
$facebook = new Facebook($config);
$attachment = array(
'access_token' => $user_token,
'message' => "Test Message",
'caption' => "THis is a Caption",
'name' => "Test Name",
'description' => "This is a description",
'link' => 'http://url.com/',
'picture' => $photo_Url,
);
$response = $facebook->api("/".$userID."/feed/", 'POST', $attachment);
您可以找到更多Here
答案 2 :(得分:3)
您必须在您的应用上获得pubish_stream权限,然后使用curl尝试: -
$attachment = array(
'access_token' => $access_token,
'message' => 'i m success to using graph api for post wall',
'name' => 'Wall Post using graph api',
'link' => 'www.mysite.com',
'description' => 'Using the Graph API, any Facebook users Wall feed may be accessed by using this URL:',
'picture'=>'http://example.com/images/noimage.png'
);
$url = "https://graph.facebook.com/$facebook_id/feed";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //to suppress the curl output
$result = curl_exec($ch);
curl_close ($ch);
print_r($result)
答案 3 :(得分:2)
您要发布到Feed。你应该发帖到LINK。
将图片链接发布到链接Feed,您应该没问题。
https://developers.facebook.com/docs/reference/api/link/
我将在勾选中发布一个例子。
----后来----
嗯,链接选项不太令人满意。你得到了图片的缩略图,你可以点击它来查看完整的图片,但它非常难看。我真的不认为你就是这样。
所以我做了一些实验,并不断遇到你提到的CDN错误。所以我用Google搜索并发现了以下内容:
在溪流故事中提供图像 2010年6月18日下午3:21
我们不再允许流故事包含fbcdn.net域上托管的图像。与这些URL相关联的图像并不总是针对流故事进行优化,偶尔会导致错误,从而导致糟糕的用户体验。确保您的流附件不使用此域引用图像。您应该在本地托管图像。
根据Facebook的说法,你拥有它,你就不能再做你想做的事了。