Php пост на facebook

Кросспостинг на страницу Facebook с помощью PHP SDK

Многие сайты публикуют в социальных сетях информацию о новых материалах, это можно сделать и для Facebook. Предполагается, что вы уже создали приложение и указали разрешенные хосты для перенаправления OAuth во вкладке «Дополнительно» пункта меню «Настройки». Итак, запускаем сессию функцией session_start(), кому надо, тот может включить вывод ошибок, если он отключен.

error_reporting(E_ALL); ini_set("display_errors", 1); 

Далее загружаем библиотеку PHP SDK (которая есть на github) и извлекаем папку src (которую можно переименовать). Затем указываем путь к автозагрузчику.

require_once __DIR__ . '/папка_src/autoload.php'; 

Теперь создаем экземпляр класса Facebook.

$fb = new Facebook\Facebook([ 'app_id' => '1234567890123456', //Замените на ваш id приложения 'app_secret' => '12345678901234567890123456789012' //Ваш секрет приложения ]); 

Вызываем помощника для выполнения авторизации, указываем требуемые разрешения для публикации на странице.

После вас перекинет на сайт Facebook, где нужно будет авторизоваться, затем вы перейдете по ссылке, указанной в фунции getLoginUrl(). Здесь вы в очередной раз вызываете помощника, у которого получаете access_token пользователя.

$helper = $fb->getRedirectLoginHelper(); try < $accessToken = $helper->getAccessToken(); > catch(Facebook\Exceptions\FacebookResponseException $e) < echo 'Graph вернул ошибку: ' . $e->getMessage(); exit; > catch(Facebook\Exceptions\FacebookSDKException $e) < echo 'Facebook SDK вернул ошибку: ' . $e->getMessage(); exit; > if (isset($accessToken)) $_SESSION['facebook_access_token'] = (string) $accessToken; elseif ($helper->getError()) exit; 

Если вы попытаетесь постить на страницу с этим токеном, то будет возвращаться ошибка «Permissions error», так как для этого нужен токен страницы. Чтобы его получить, необходимо вызвать функцию get() объекта Facebook и передать ему два параметра: часть url запроса токена страницы, содержащую id страницы, на которую вы хотите постить и полученный ранее access_token пользователя.

try < $response = $fb->get('/id_страницы?fields=access_token', $_SESSION['facebook_access_token']); > catch (Facebook\Exceptions\FacebookResponseException $e) < echo 'Graph вернул ошибку: ' . $e->getMessage(); exit; > catch (Facebook\Exceptions\FacebookSDKException $e) < echo 'Facebook SDK вернул ошибку: ' . $e->getMessage(); exit; > //Токен страницы echo $response->getGraphNode()['access_token']; 

Полученный токен будет иметь неограниченный срок действия. Информация о токене доступна через дебаггер. Теперь можно попробовать запостить какое-нибудь сообщение.

$str_page = '/1234567890123456/feed'; $feed = array('message' => 'тест'); try < $response = $fb->post($str_page, $feed, 'access_token_страницы'); > catch (Facebook\Exceptions\FacebookResponseException $e) < echo 'Graph вернул ошибку: ' . $e->getMessage(); exit; > catch (Facebook\Exceptions\FacebookSDKException $e) < echo 'Facebook SDK вернул ошибку: ' . $e->getMessage(); exit; > $graphNode = $response->getGraphNode(); echo 'Опубликовано, id: ' . $graphNode['id']; 

Если потребуется, то можно выйти из Facebook.

Читайте также:  Python разбор бинарных данных

Источник

Публикация на страницу Facebook через PHP

Для доступа к API facebook нужно создать приложение на странице https://developers.facebook.com/apps/, но есть большая проблема:

Facebook ограничил свободный доступ к API. Теперь чтобы получить права для публикации записей нужно:

  • Указать в приложении ссылку на свою политику конфиденциальности.
  • Подтвердить свой профиль документом (отправить скан паспорта или водительского удостоверения).
  • Отправить 2 запроса на получение доступа к publish_pages и manage_pages , с описанием, как приложение использует функции, почему это необходимо и что это дает пользователю. Так-же необходимо представить видео, пошагово демонстрирующее, как приложение будет использовать эту функцию. Проверка приложения занимает 7 дней.

Если удастся пройти проверку:

Получение access_token

2. В выпадающем меню «Приложение» выбираем свое приложение.

3. Ниже в меню «Get Token» выбираем «Get Page Access Token», появится окно подтверждения прав, жмем «ок».

4. В этом же меню появится новый пункт с названием страницы (Маркеры доступа на Страницу), выбираем его.

5. После чего появится новый пункт «Request publish_pages», жмем его и опять подтверждаем права.

7. В правой части добавляем access_token и снова «Отправить». В ответе будет ID страницы и токен.

8. Копируем полученный токен. У него время действия всего час. Страницу не закрываем!

9. Переходим на https://developers.facebook.com/tools/debug/accesstoken и вставляем скопированный токен в поле, жмем «Отладить», ниже жмем кнопку «Extend Access Token» и вводим пароль, после этого появится новый токен сроком уже на 60 дней, копируем его.

10. Возвращаемся на https://developers.facebook.com/tools/explorer/ и вставляем скопированный токен в поле «Маркер доступа», жмем «Submit». В ответе будет новый токен без ограничений по времени, его будем использовать при запросах к API.

Метод feed

Публикация ссылки на страницу сайта.

$page_id = 'ID_СТРАНИЦЫ'; $data = array( 'access_token' => 'ACCESS_TOKEN', 'message' => 'Hello, world!', 'link' => 'http://snipp.ru/', 'name' => 'Анкор', 'picture' => 'http://snipp.ru/logo.png' ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/' . $page_id . '/feed'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res, true); var_dump($res);

Метод photos

Публикация изображения с текстом.

$page_id = 'ID_СТРАНИЦЫ'; $data = array( 'access_token' => 'ACCESS_TOKEN', 'caption' => 'Hello, world!', 'url' => 'http://snipp.ru/logo.png' ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/' . $page_id . '/photos'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res, true); var_dump($res);

Источник

Auto Post On Facebook Using PHP

In this tutorial we will show you how to post automatically on Facebook using PHP and Facebook Graph API.

You just have to create a Facebook App and get your Access Token and need a Facebook PHP SDK to help to post on Facebook.You may also like login with facebook using PHP.

Auto Post On Facebook Using PHP

To Post On Facebook Automatically It Takes Only Three Steps:-

  1. Create A Facebook App
  2. Get Facebook Access Token
  3. Make a PHP file and define methods to Post On Facebook

Step 1. Create A Facebook App

Before creating Facebook App you need to download Facebook PHP SDK and it requires PHP 5.2.0 or higher for PHP curl extension.

Now we have to create Facebook App go to https://developers.facebook.com/apps and follow the instructions.

Step 2. Get Facebook Access Token

To get Access Token you have to set callback URL for the Facebook app to get the result. Then authorize the app for permissions on https://developers.facebook.com/docs/facebook-login/permissions/v2.2 and then get the access Token.

Make sure renew your Facebook Token After 60 days because Facebook Access token will expires in 60 days.

Step 3. Make a PHP file and define methods to Post On Facebook

We make a PHP file and save it with a name autopost.php

connection = new Facebook($config); > function share($title, $targetUrl, $imgUrl, $description, $access_token) < $this->connection->setAccessToken($access_token); $params["access_token"] = $access_token; if(!empty($title)) < $params["message"] = $title; $params["name"] = $title; >if(!empty($targetUrl)) < $params["link"] = $targetUrl; >if(!empty($imgUrl)) < $params["picture"] = $imgUrl; >if(!empty($description)) < $params["description"] = $description; >// post to Facebook try < $ret = $this->connection->api('/me/feed', 'POST', $params); > catch(Exception $e) < $e->getMessage(); > return true; > function getLoginUrl($params) < return $this->connection->getLoginUrl($params); > function getContent($url) < $ci = curl_init(); /* Curl settings */ curl_setopt($ci, CURLOPT_URL, $url); curl_setopt($ci, CURLOPT_RETURNTRANSFER, true); curl_setopt($ci, CURLOPT_HEADER, false); curl_setopt( $ci, CURLOPT_CONNECTTIMEOUT, 10 ); curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($ci); curl_close ($ci); return $response; >> ?>
share($title, $targetUrl, $imgUrl, $description, $access_token); ?>

After using above code you post will be posted automatically on your Facebook profile automatically. You may also like get facebook like, share and comment using PHP.

Thats all, this is how to Post On Facebook Automatically using PHP. You can customize this code further as per your requirement. And please feel free to give comments on this tutorial.

Источник

Post to Facebook Wall from Website using PHP

Facebook is the most popular social media and shares on the Facebook wall are the most used activity by its user. Facebook share option is a common and required feature for every web application. We can easily share the post on Facebook by manually or from the script. In this tutorial, you’ll learn how to post activity on Facebook wall from website using PHP and Facebook API.

Post to Facebook wall is useful when you want to post dynamic content to Facebook from the website. Here we’ll build a simple PHP script to publish Facebook post from website using Facebook PHP SDK. This functionality lets the user submit the post (message, picture, link, text content) on their Facebook timeline from the website using PHP SDK v5.0 and Facebook Graph API.

Before getting started to post to Facebook wall using PHP, take a look at the files and folders structure.

post-to-facebook-wall-from-website-php-sdk-files-structure-codexworld

Facebook Apps Creation

To access Facebook API, App ID & App Secret need to be specified on Facebook API call. You need to create a Facebook App for generating App ID & App Secret. If you’re not already created a Facebook app, visit the link below to create and configure a Facebook App from the App Dashboard.

After completing the Facebook App creation and configuration you’ll get the App ID and App secret. Copy this App ID and App Secret of your Facebook App for later use.

Facebook SDK for PHP v5.0

All Facebook PHP SDK files are included in the facebook-php-sdk/ directory, place the facebook-php-sdk/ folder into the root directory. You don’t need to download it separately, Facebook SDK v5 is included in our source code.

Facebook API Configuration (fbConfig.php)

The fbConfig.php file is used to configure Facebook SDK and connect to Facebook Graph API. Specify your Facebook App ID ( $appId ), App Secret ( $appSecret ), Callback URL ( $redirectURL ), and Permissions ( $fbPermissions ) to connect with Facebook API and working with SDK.

Note that: The access token must have the publish_actions permission to post on Facebook wall.

if(!session_id()) session_start();
>

// Include the autoloader provided in the SDK
require_once __DIR__ . '/facebook-php-sdk/autoload.php';

// Include required libraries
use Facebook\Facebook;
use
Facebook\Exceptions\FacebookResponseException;
use
Facebook\Exceptions\FacebookSDKException;

/*
* Configuration and setup Facebook SDK
*/
$appId = 'InsertAppID'; //Facebook App ID
$appSecret = 'InsertAppSecret'; //Facebook App Secret
$redirectURL = 'http://localhost/post_to_facebook_from_website/'; //Callback URL
$fbPermissions = array('publish_actions'); //Facebook permission

$fb = new Facebook(array(
'app_id' => $appId,
'app_secret' => $appSecret,
'default_graph_version' => 'v2.6',
));

// Get redirect login helper
$helper = $fb->getRedirectLoginHelper();

// Try to get access token
try if(isset($_SESSION['facebook_access_token'])) $accessToken = $_SESSION['facebook_access_token'];
>else
$accessToken = $helper->getAccessToken();
>
> catch(
FacebookResponseException $e) echo 'Graph returned an error: ' . $e->getMessage();
exit;
> catch(
FacebookSDKException $e) echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
>
?>

Note that: You’ll find the App ID and App Secret on your Facebook Apps settings page.

Submit Post to Facebook Wall (index.php)

Include the fbConfig.php file to connect Facebook API and get the access token.

If FB access token ( $accessToken ) is available, the following will happen.

  • Access token will be stored in the session that will be used for next time API calls.
  • Post message, name, link, description, and the picture will be submitted to Facebook wall.
  • Post submission status will be shown.

If FB access token ( $accessToken ) is not available, the Facebook Login URL will be generated and the user would be redirected to the FB login page.

Conclusion

We’ve tried to provide a simple way to share the post to Facebook wall from website using PHP. Hope! our script will help you to post on Facebook wall from your website. Also, you can change the post content dynamically by specifying the respective value in $attachment array.

Are you want to get implementation help, or modify or enhance the functionality of this script? Click Here to Submit Service Request

If you have any questions about this script, submit it to our QA community — Ask Question

Источник

Оцените статью