Постинг в FB

Статус
В этой теме нельзя размещать новые ответы.

Genk0

Хранитель порядка
Регистрация
2 Июн 2010
Сообщения
3.095
Реакции
1.405
С ВК разобрался быстро, все по человечески написано, с FB какая то дрянь, не могу элементарно получить тот же сраный токен.
В самописном движке при создании новости нужно прикрутить постинг в FB (в ВК уже сделал)
Читал АПИ, пробовал тучу древних скриптов, что постят в сети, FB часто меняет свое АПИ, то что-то нужно дописать, то что-то убрать чтобы авторизоваться.
В общем помогите, может кто писал, хотя бы получение токена на автомате, с самим постингом уже думаю разберусь.
 
Делал получение token через javascript sdk, потом через cookie грабил на php.
1. C помощью js инициализируем facebook app. Sdk создаст куку.
Код:
window.fbAsyncInit = function() {
        FB.init({
          appId      : 'вставить свой код app',
          cookie:      true,
          version    : 'v2.4'
        });
      };

      (function(d, s, id){
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) {return;}
        js = d.createElement(s); js.id = id;
        js.src = "//connect.facebook.net/en_US/sdk.js";
        fjs.parentNode.insertBefore(js, fjs);
      }(document, 'script', 'facebook-jssdk'));
2. Можно теперь ловить любым php скриптом. В данном случае sdk предлагает свой метод
$fb->getJavaScriptHelper(); А так же есть общий класс от куда все методы берут данные от твоём app это $fb = new Facebook\Facebook([...]);
Для этого необходимо указать секретный ключ и app-id, по которому метод будет расшифровывать token.
Код:
require_once __DIR__ . '/vendor/autoload.php';// тут подключаются библиотеки
  $fb = new Facebook\Facebook([
  'app_id' => 'вставить свой код app',
  'app_secret' => 'вставить свой код app секрет',
  'version' => 'v2.4',
  ]);

$helper = $fb->getJavaScriptHelper();//Метод получает из куки зашифрованный token

try {
  $accessToken = $helper->getAccessToken();//расшифровка токена

} catch(Facebook\Exceptions\FacebookResponseException $e) {
  // When Graph returns an error
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  // When validation fails or other local issues
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}

if (!isset($accessToken)) {

  echo 'No cookie set or no OAuth data could be obtained from cookie.';
  exit;
}

// Logged in
echo '<h3>Access Token</h3>';
var_dump($accessToken->getValue());//вывод значения

$_SESSION['fb_access_token'] = (string) $accessToken;//И токен запичывается в куки
3. Token у тебя в куке. Теперь ты можешь делать постинг своих новостей через rss или на прямую через http ссылки. Можно делать этот как js-ajax, так и через post запрос php на прямую. В зависимости как у тебя устроен движок.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху