Как получить user_token, если у меня есть его / ее oauth_token? - PullRequest
4 голосов
/ 27 октября 2011

Когда пользователь открывает мое приложение Canvas, я получаю signed_request от Facebook, из которого я получаю user_id и oauth_token. Как я могу получить access_token и проверить / получить разрешения пользователя и другие данные?

Ответы [ 3 ]

5 голосов
/ 01 ноября 2011

Токен oauth_token, о котором вы говорите, это также пользователи access_token, они должны быть точно такими же.

Чтобы проверить права доступа пользователей, вы можете сделать GET-вызов / me / permissions, это должно вернуть данныемассив, подобный приведенному ниже

{
  "data": [
    {
      "installed": 1, 
      "read_stream": 1, 
      "manage_notifications": 1, 
      "manage_pages": 1, 
      "user_likes": 1, 
      "user_activities": 1, 
      "user_interests": 1, 
      "user_photos": 1, 
      "user_about_me": 1, 
      "type": "permissions"
    }
  ]
}

В зависимости от того, к каким другим данным вы хотите получить доступ, вам потребуется запросить дополнительные разрешения и затем вызвать соответствующие конечные точки API.Например, чтобы получить основную информацию о пользователях, позвоните по номеру /me или получите список их друзей /me/friends

Все разрешения, которые вы можете запросить, можно получить по адресу https://developers.facebook.com/docs/reference/api/permissions/

И вся информация о том, куда обращаться в API для получения различных битов данных, которые вам нужны здесь https://developers.facebook.com/docs/reference/api/

1 голос
/ 01 ноября 2011

Когда вы говорите, что у вас есть «oauth-токен» - вы уверены, что это не токен доступа?Можете ли вы попробовать сделать API-вызов для /me/permissions с этим токеном и посмотреть, работает ли он?Он должен вернуть список разрешений, которые пользователь предоставил вашему приложению (которые можно использовать через этот токен)

0 голосов
/ 07 ноября 2011
    <?php
include '../../src/config.php';
// Get User ID
$user = $facebook->getUser();

// We may or may not have this data based on whether the user is logged in.
//
// If we have a $user id here, it means we know the user is logged into
// Facebook, but we don't know if the access token is valid. An access
// token is invalid if the user logged out of Facebook.

if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

// Login or logout url will be needed depending on current user state.
if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
  $access_token = $facebook->getAccessToken();
$user_xml = "<?xml version=\"1.0\"?>\n"; 
$user_xml .= "<roots>\n";
$user_xml .= "<access>\n";
$user_xml .= "<token>" . $access_token . "</token>\n"; 
$user_xml .= "</access>\n";
$user_xml .= "</roots>\n";
echo $user_xml; 



} else {
  $loginUrl = $facebook->getLoginUrl();
}




?>
...