Hoe krijg je een user access_token als ik zijn/haar oauth_token heb?

Wanneer de gebruiker mijn canvas-app opent, krijg ik een signed_request van Facebook, waaruit ik de user_id en oauth_token afleid. Hoe kan ik dan de toegangstoken krijgen en gebruikersrechten en andere gegevens controleren/verkrijgen?

4

3 antwoord

Het oauth_token waar je het over hebt is ook de user access_token, ze moeten precies hetzelfde zijn.

Om de gebruikersrechten te controleren, kunt u een GET-aanroep doen naar/me/permissions. Dit zou een data-array moeten retourneren zoals hieronder

{
  "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"
    }
  ]
}

Depending on what the other data you wish to access you will need to ask for more permissions and then call the appropriate API end points. For example to get the users basic information make a call to /me or to get a list of their friends /me/friends

You can find all the permissions you can ask for at https://developers.facebook.com/docs/reference/api/permissions/

And all the information about where to call in the API for retrieving the different bits of data you require here https://developers.facebook.com/docs/reference/api/

5
toegevoegd

Wanneer u zegt dat u hun 'oauth token' hebt - weet u zeker dat dit niet het toegangstoken is? Kun je een API-aanroep doen naar /me/permissions met dat token en kijken of het werkt? Er moet een lijst worden geretourneerd van de rechten die de gebruiker aan uw app heeft verleend (die via dat token kunnen worden gebruikt)

1
toegevoegd
    <?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 .= "\n";
$user_xml .= "\n";
$user_xml .= "" . $access_token . "\n"; 
$user_xml .= "\n";
$user_xml .= "\n";
echo $user_xml; 



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




?>
1
toegevoegd