У меня возникла странная проблема с графическим API, приведенный ниже код, используемый для работы над добавлением сообщения в ленту новостей пользователей с миниатюрой прикрепленной фотографии (ссылка на параметр «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 под мной.
[Обновление] Я заметил, что это происходит, когда я указываю как link & object_attachment в том же POST. Если я удалю параметр связи из вышеизложенного, я получу немного лучшее обновление, но это не очень важно, поскольку основной причиной, по которой я хочу, чтобы это сообщение существовало, – это добавление ссылки.
Я предполагаю, что пользователь дал разрешение для 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
Вам нужно сохранить изображение где-нибудь локально, на локальном сервере. из-за этой статьи
Я думаю, что '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);
Вы можете найти больше здесь
вы должны разрешить pubish_stream в своем приложении, а затем попробовать это с помощью curl: –
$attachment = array( 'access_token' => $access_token, 'message' => 'im 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)
Вы отправляете в фид. Вместо этого вы должны отправить сообщение в LINK.
Отправьте ссылку на картинку в канал ссылок, и все будет в порядке.
https://developers.facebook.com/docs/reference/api/link/
Я поставлю пример в тике.
—- Позже —-
Хмммм, ну ссылка не удовлетворительна. Вы получите миниатюру картинки, и вы можете щелкнуть ее, чтобы увидеть картинку в полном объеме, но ее очень уродливая. Я действительно не думаю, что это то, что вам нужно.
Поэтому я сделал еще несколько экспериментов и продолжал сталкиваться с этой ошибкой CDN, о которой вы говорили. Поэтому я нашел его в Google и нашел следующее:
Обслуживание изображений в потоковых рассказах 18 июня 2010 г. 15:21
Мы больше не разрешаем потоковые истории содержать изображения, размещенные в домене fbcdn.net. Изображения, связанные с этими URL-адресами, не всегда оптимизированы для потоковых историй и иногда приводят к ошибкам, что приводит к плохой работе с пользователями. Убедитесь, что ваши потоковые вложения не ссылаются на изображения с этим доменом. Вы должны размещать изображения локально.
Итак, у вас есть это, согласно Facebook, вы больше не можете делать то, что хотите.