1

ログインにクライアント側のSDKを使用し、グラフAPIを使用してトリガーされたアクションで「ウォール投稿」にサーバー側のPHP SDKを使用しています(offline_accessで使用していましたが、非推奨であることがわかりました)。

サーバー側で拡張トークンを使用できるように、クライアント側SDKを使用してサーバー側で拡張アクセストークンを取得する方法、

hereのようないくつかの答えがあることは知っていますが、サーバー側のログインを使用し、応答で取得する $_REQUEST['code'] から拡張トークンを取得します。

クライアント側のログインを使用して $_REQUEST['code'] の値を取得する方法はありますか?

アップデート:

私のクライアント ログイン コードは oAuth をサポートしています。

FB.init({
  appId      : 'MYAPPID', // App ID
  status     : true,  // check login status
  cookie     : true,  // enable cookies to allow the server to access  the session
  xfbml      : true,  // parse XFBML
  oauth      : true   // enable OAuth 2.0
});  

FB.login(function() {
   FB.api('/me', {'fields': "some coma seperated fields"},
      function(response){ 
        //Function that sends data to server
        Pass_data_to_server( response );
      });    
}, scope:'some scope values');

サーバー側のコード:

<?php
  $settings = array
  (
    'appId'  => FB_APP_ID,
    'secret' => FB_APP_SECRET,
    'cookie' => true,
    'oauth'  => true
  );    

  // Get facebook object from facebook sdk class
  $facebook  = new Facebook($settings); 

  if ($facebook)
  {                              
    $user_id   = $facebook->getUser();      

    $facebook->setExtendedAccessToken(); //long-live access_token 60 days
    $token     = $facebook->getAccessToken();            
    try 
    {                      
      $response = $facebook->api('me/og.like', 'POST',{ $MYCUSTOMDATA});
      return $response;
    }
    catch (FacebookApiException $e) 
    {
      print_r($e)
      return false;          
    }        
  }
?>
4

1 に答える 1

1

Facebook PHP SDK メソッドを使用してアクセス トークンを拡張できます

setExtendedAccessToken()

これにより、エンドポイントを呼び出すことで、短期間の拡張アクセス トークンが自動的に拡張されます

https://graph.facebook.com/oauth/access_token?             
client_id=APP_ID&
client_secret=APP_SECRET&
grant_type=fb_exchange_token&
fb_exchange_token=EXISTING_ACCESS_TOKEN 

その後、このアクセス トークンを保存して、次の 60 日間のリクエストを承認できます。

于 2013-04-12T06:37:39.270 に答える