Facebook php sdk 4.0 опубликовать сообщение на временной шкале пользователя?

0

Мой php-код регистрирует вас на Facebook для успешного разрешения. Затем он извлекает изображение и имя вашего профиля. Я также пытаюсь запустить сценарий, который позволяет пользователю публиковать сообщение на его временной шкале. На данный момент он запускает код ошибки 200, и я не уверен, как с этим справиться.

Вот ссылка на мое приложение http://www.vle.co.nz/fb/, а также мой код ниже.

<?php

require_once('src/Facebook/Entities/AccessToken.php');
require_once('src/Facebook/HttpClients/FacebookHttpable.php');
require_once('src/Facebook/HttpClients/FacebookCurl.php');
require_once('src/Facebook/HttpClients/FacebookCurlHttpClient.php');
require_once('src/Facebook/FacebookSDKException.php');
require_once('src/Facebook/FacebookRequestException.php');
require_once('src/Facebook/FacebookPermissionException.php' );
require_once('src/Facebook/FacebookAuthorizationException.php');
require_once('src/Facebook/FacebookRedirectLoginHelper.php');
require_once('src/Facebook/FacebookRequest.php');
require_once('src/Facebook/FacebookResponse.php');
require_once('src/Facebook/FacebookSession.php');
require_once('src/Facebook/GraphObject.php');
require_once('src/Facebook/GraphSessionInfo.php');
require_once('src/Facebook/GraphUser.php');

use Facebook\FacebookCurl;
use Facebook\FacebookCurlHttpClient;
use Facebook\FacebookHttpable;
use Facebook\FacebookAuthorizationException;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookRequestException;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookSession;
use Facebook\GraphObject;
use Facebook\GraphSessionInfo;
use Facebook\GraphUser;


try {

  session_start();

  $app_id = '1619082794989827';
  $app_secret = '3b9c9c607ab5529561bdac8c5944a9bb';
  $redirect_url = 'http://www.vle.co.nz/fb/';

  FacebookSession::setDefaultApplication($app_id, $app_secret);

  $helper = new FacebookRedirectLoginHelper($redirect_url);

  $sess = $helper->getSessionFromRedirect();


  if(isset($sess)) {

    $accessToken = $sess->getAccessToken();
    $_SESSION['fb_token'] = $accessToken->extend(); 

    $request = new FacebookRequest($sess, 'GET', '/me');


    $response = $request->execute();

    $graph = $response->getGraphObject(GraphUser::classname());

    $name = $graph->getName();
    $id = $graph->getId();
    $image = 'http://graph.facebook.com/'.$id.'/picture?width=300';
    echo "<img src='$image' /><br/>";
    echo "Hello $name <br>";
    echo "Email: $email <br>";
    echo "Your facebook ID: $id <br>";

    $postRequest = new FacebookRequest($sess, 'POST', '/me/feed', array('message' => 'My First Post using facebook sdk!'));

    $postResponse = $postRequest->execute();

    $posting = $postResponse->getGraphObject();

    echo $posting->getProperty('id');
  } else {
    echo "<a href='".$helper->getLoginUrl(array('email','user_about_me'))."'>Login with facebook</a>";
  }
} catch(FacebookRequestException $e) {
    echo "Error failed: " . $e->getCode() ;
}

?>
  • 0
    Не могли бы вы рассказать об ошибке? 200 - успешный HTTP-запрос.
  • 0
    Ошибка не удалась: 200 - это все, что я получил. Я уверен, если вы попробуете мое приложение По ссылке вы получите то же самое. Спасибо
Показать ещё 1 комментарий
Теги:
facebook
facebook-graph-api

1 ответ

0

Для публикации на пользовательской временной шкале вам требуется разрешение publish_actions.

https://developers.facebook.com/docs/graph-api/reference/v2.2/user/feed#publish

Вы запрашиваете только email и user_about_me

echo "<a href='".$helper->getLoginUrl(array('email','user_about_me'))."'>Login with facebook</a>";

Ошибка 200 API - это ошибка разрешений.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню