Я администратор FB-приложения и FB-страницы (но эта страница на отдельной учетной записи). Как я могу опубликовать что-то на стене этой страницы через это приложение FB с помощью FB API и PHP (чтобы сделать это с помощью CRON)? Это возможно? Заранее благодарю за ваши ответы!
Да, это возможно.
Прежде всего, публикация на странице от его имени выполняется с использованием токена доступа к странице .
Получите нормальный токен из своего приложения (возможно, с помощью Graph API Explorer напрямую, выбрав свое приложение из выпадающего меню справа вверху) с разрешением: manage_pages
, а затем выполните действия, указанные мной здесь: https://stackoverflow.com / a / 18322405/1343690 – это даст вам токен доступа с неограниченным доступом.
Сохраните его где-нибудь и используйте с вашим заданием cron во время публикации. Код для публикации –
$url = 'https://graph.facebook.com/{page-id}/feed'; $attachment = array( 'access_token' => $page_access_token, 'message' => '{your-message}' ); $result = PostUsingCurl($url, $attachment); $result = json_decode($result, TRUE); if( isset($result['error']) ) { echo "Error: ".$result['error']['message']."<br/>"; } else{ echo "Feed posted successfully!<br/>"; } function PostUsingCurl($url, $attachment) { $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_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); curl_close ($ch); return $result; }
Я использую это лично. Хотя вам нужно будет уже создать access_token. Если вы этого не сделаете, вы можете использовать инструмент «Графический проводник» Facebook, чтобы предоставить вашей учетной записи соответствующие разрешения.
$attachment = array( "access_token" => $fb_token, "link" => "$postLink", "name" => "$postName", "description" => "$postDescription", "message" => "$postMessage", "fb:explicitly_shared" => true ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,'https://graph.facebook.com/'.$fb_page_id.'/feed'); 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_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //to suppress the curl output $result = curl_exec($ch); curl_close ($ch);
Надеюсь, это поможет!
Добавить Api на свою страницу
<script id="facebook-jssdk" src="//connect.facebook.net/en_US/all.js#xfbml=1"></script>`
функция щелчка для вызова fb-страницы
$('#facebook').click(function(){ FB.init({ appId: 12345, // your app ID status: true, cookie: true }); FB.ui({ method: 'feed', name: "post name", link: "http://postlink.com, //picture: "http:/imageurl.com, description: "this is the body of the text" }); })