Я, наконец, получил facebook график api, чтобы публиковать сообщения на моем фанате PAGE в качестве page
Как я могу заставить его размещать большие изображения в виде сообщения, а не как ссылку?
'source' => $photo
кажется, создает миниатюру
это то, что я до сих пор
<?php $page_id = 'YOUR-PAGE-ID'; $message = "I'm a Page!"; $photo = "http://img.ruphp.com/php/pic.jpg"; require '../src/facebook.php'; // Create our Application instance (replace this with your appId and secret). $facebook = new Facebook(array( 'appId' => 'YOUR-APP-ID', 'secret' => 'YOUR-SECRET-ID', )); $user = $facebook->getUser(); if ($user) { try { $page_info = $facebook->api("/$page_id/?fields=access_token"); if( !empty($page_info['access_token']) ) { $facebook->setFileUploadSupport(true); // very important $args = array( 'access_token' => $page_info['access_token'], 'message' => $message, 'source' => $photo ); $post_id = $facebook->api("/$page_id/feed","post",$args); } } catch (FacebookApiException $e) { error_log($e); $user = null; } } // Login or logout url will be needed depending on current user state. if ($user) { $logoutUrl = $facebook->getLogoutUrl(array( 'next' => 'http://mydomain.com/logout_page.php' )); } else { $loginUrl = $facebook->getLoginUrl(array('scope'=>'manage_pages,publish_stream')); } ?>
Проблема здесь в том, что вы на самом деле не публикуете фотографию. Что вы делаете, так это размещение ссылки на эту фотографию, поэтому вы видите, что это изображение предварительного просмотра миниатюр, которое Facebook извлекал из этого URL-адреса.
То, что вы хотите сделать, это предоставить полный путь к файлу на вашем сервере с префиксом @
. Тема обсуждалась на сайте совсем немного, поэтому я просто укажу вам в сторону канонического сообщения, связанного с загрузкой изображений в Facebook с помощью PHP SDK
Загрузить фотографию в альбом с помощью API-интерфейсов Facebook
Код выглядит следующим образом:
$facebook->setFileUploadSupport(true); $params = array('message' => 'Photo Message'); $params['image'] = '@' . realpath($FILE_PATH); $data = $facebook->api('/me/photos', 'post', $params);