Как я могу получить сообщения из своего личного профиля на Facebook, используя getAccessToken()?

Что я на самом деле пытаюсь сделать, так это получить мои сообщения/статусы с моей личной страницы профиля в Facebook (это не фан-страница) и отобразить их на моем веб-сайте. Также обратите внимание, что каждый пользователь, который посетит мой веб-сайт, должен иметь возможность просматривать мои статусы, то есть это не связано с их аутентификацией или чем-то подобным. Это то, что должно быть сгенерировано на стороне сервера.

Я знаю, что вы можете получить строку JSON из URL-адреса, подобного этому https://graph.facebook.com/MY_PROFILE_ID/feed?access_token=ACCESS_TOKEN, потому что я попробовал его на странице разработчиков facebook (Graph API Explorer), и это именно то, что мне нужно.

Дело в том, что когда я генерирую токен доступа из Graph API Explorer, я могу выбрать разрешения, и он генерирует токен соответственно в соответствии с выбранными разрешениями, такими как user_status, status_update и т. д.

Теперь я хочу сделать это с помощью PHP-SDK, но я понятия не имею, как сгенерировать токен доступа, такой же, как тот, который я генерирую в Graph API Explorer.

Основной способ сделать это — вызвать getAccessToken(), как показано здесь. Дело в том, что когда я использую токен, созданный с помощью этого простого метода, возвращаемая строка JSON покажет мне только мою основную информацию.

$config = array(
  'appId' => 'MY_APP_ID',
  'secret' => 'MY_APP_SECRET',
);

$facebook = new Facebook($config);
$ACCESS_TOKEN = $facebook->getAccessToken();

Например, как я могу добавить разрешения? Должен ли я где-то назначать параметры? Я потратил довольно много времени на чтение документации API facebook и некоторых других форумов, но не нашел ответа, который мне нужен.

Наконец, если я получу правильный токен доступа, я просто извлеку строку JSON и проанализирую ее с тем, что мне нужно.

Спасибо.


person justin    schedule 19.01.2014    source источник


Ответы (1)


вам нужно добавить разрешения в свой код для входа в систему, используя fb js sdk add в области, например, в этом примере:

$("#login").on('click',function(){
 FB.login(function(response){
 console.log(response);
 },{scope: 'email,manage_pages,read_insights'});
});

или в php fb sdk следующий вид:

<?php
require 'server/fb-php-sdk/facebook.php';

$app_id = 'APP_ID';
$app_secret = 'APP_SECRET';
$app_namespace = 'APP_NAMESPACE';
$app_url = 'https://apps.facebook.com/' . $app_namespace . '/';
$scope = 'email,publish_actions';

// Init the Facebook SDK
$facebook = new Facebook(array(
     'appId'  => $app_id,
     'secret' => $app_secret,  
));

// Get the current user
$user = $facebook->getUser();

// If the user has not installed the app, redirect them to the Login Dialog
if (!$user) {
    $loginUrl = $facebook->getLoginUrl(array(
    'scope' => $scope,
    'redirect_uri' => $app_url,
    ));

    print('<script> top.location.href=\'' . $loginUrl . '\'</script>');
 }
       ?>

наиболее важной для добавления разрешения является эта часть:

        $scope = 'email,publish_actions';

вы можете найти все о расширенных разрешениях по этой ссылке

https://developers.facebook.com/docs/reference/login/extended-permissions

person rojaswilmer    schedule 19.01.2014
comment
Привет. Но это решение, которое вы предоставили, совсем не то, что мне нужно. Все, что я хочу, это то, что на моей личной веб-странице я получаю статусы своего личного профиля Facebook и, наконец, отображаю, скажем, последние 5. Вот и все. Нет аутентификации других пользователей или чего-то в этом роде. - person justin; 21.01.2014