Новый API-интерфейс с графическим API-интерфейсом - Приложение не отображается
У меня возникла странная проблема с графическим API, ниже приведен код, который использовался для меня, добавляя сообщение в ленту новостей пользователей с миниатюрой прикрепленной фотографии (ссылка на параметр "object_attachement" ).
Однако теперь сообщение создается, как и ожидалось, но миниатюра пуста. Photo_id, который я использую, существует в коллекции фотографий пользователя.
![Results of below code now.]()
$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. Если я удалю параметр связи из вышеизложенного, я получу немного лучшее обновление, но это не так хорошо, поскольку основная причина, по которой я хочу, чтобы этот пост существовал, - это добавление ссылки.
Ответы
Ответ 1
Я предполагаю, что пользователь дал разрешение для 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
Вам нужно сохранить изображение, где локально, на локальном сервере. из-за этого статьи
Ответ 2
Я думаю, что '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);
Вы можете найти более Здесь
Ответ 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)
Ответ 4
Вы отправляете в фид. Вместо этого вы должны отправить сообщение в LINK.
Отправьте ссылку на картинку в канал ссылок, и все будет в порядке.
https://developers.facebook.com/docs/reference/api/link/
Я поставлю пример в тике.
---- Позже ----
Хмммм, ну ссылка не удовлетворительна. Вы получите миниатюру картинки, и вы можете щелкнуть ее, чтобы увидеть картинку в полном объеме, но ее очень уродливая. Я действительно не думаю, что это то, что вам нужно.
Итак, я сделал еще несколько экспериментов и продолжал сталкиваться с этой ошибкой CDN, о которой вы говорили. Таким образом, я googled и нашел следующее:
Обслуживание изображений в потоковых потоках
18 июня 2010 г. 15:21
Мы больше не разрешаем потоковым потокам содержать изображения, размещенные в домене fbcdn.net. Изображения, связанные с этими URL-адресами, не всегда оптимизированы для потоковых историй и иногда приводят к ошибкам, что приводит к плохой работе с пользователями. Убедитесь, что ваши потоковые вложения не ссылаются на изображения с этим доменом. Вы должны размещать изображения локально.
Итак, у вас есть это, согласно Facebook, вы больше не можете делать то, что хотите.