ユーザーが私のキャンバスアプリを開くと、私は user_id oauth_token を派生したFacebookから signed_request どのようにして access_token を取得し、ユーザー権限とその他のデータをチェック/取得できますか?


3 答え


/ me/permissionsへのGET呼び出しを行うことができるユーザ権限をチェックするには、以下のようなデータ配列を返す必要があります

  "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/


あなたがあなたの「oauth token」を持っていると言えば、アクセストークンではないと確信していますか?あなたはそのトークンを使って/me/permissions へのAPI呼び出しを試み、それが動作しているかどうか確認できますか?ユーザーがあなたのアプリケーションを許可した権限のリストを返します(そのトークンを介して使用できる)

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) {
    $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();