0

Graph api を使用して、PHP で Facebook アプリを作成しています。

require_once("facebook.php");
  $config = array();
  $config[‘appId’] = 'xxxxxxxxxxx';
  $config[‘secret’] = 'xxxxxxxxxxxxxxxxxxxxx'; // NEVER USED THIS , JUST INCLUDED IT !
  $config[‘fileUpload’] = true; // optional
  $facebook = new Facebook($config);


$app_id = "xxxxxxxxx";
    $app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
    $my_url = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";

 $token_url = "https://graph.facebook.com/oauth/access_token?"
       . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
       . "&client_secret=" . $app_secret . "&code=" . $code;

     $response = file_get_contents($token_url);
     $params = null;
     parse_str($response, $params);

     $graph_url = "https://graph.facebook.com/me?access_token=" 
       . $params['access_token']; // The acess call :)

       $at = $params['access_token']; // I USE THIS ACCESS TOKEN

そのアクセス トークン ($at) を使用してリクエストを作成します。しかし、access_token をより長い時間 (60 日) 保存する必要があります。

1) setExtendedAccessToken() メソッドを使用するにはどうすればよいですか & 2) コードのどこにそれを配置する必要があります & 3) どこから出力を取得できますか

私は使用していませんが、PHP SDK も含めています。

4

3 に答える 3

1

一時トークンを拡張トークンと交換できます。以下のコードを確認してください。

try {
        $graph_url   =  "https://graph.facebook.com/oauth/access_token?";
        $graph_url  .=  "client_id=".$FB_APP_ID;
        $graph_url  .=  "&client_secret=".$FB_APP_SECRET;
        $graph_url  .=  "&grant_type=fb_exchange_token";
        $graph_url  .=  "&fb_exchange_token=".$fb_temp_access_token;

        $response   = @file_get_contents($graph_url);            
        $params     = null;
        parse_str($response, $params);

        $new_token  =$params['access_token'];

    } catch (Exception $e) {
       //DO NOTHING
    }  
于 2012-12-12T06:19:39.073 に答える
0

アクセストークンを取得するために使用しているコードは次のとおりです。

$access_token=$facebook->getAccessToken();

このコードをこのように配置するだけです。

if($userid){

       try{

         $access_token = $facebook->getAccessToken();
         echo $access_token;
    }
    catch(FacebookApiException $e){
       //catch error here
}
else{

$loginUrl=$facebook->getLoginUrl(array('redirect_uri'=>'your_url','scope'=>'publish_stream,read_stream,manage_pages');
exit("<script>window.top.location.replace('$loginUrl');</script>");
}

約2か月間有効期限が切れるアクセストークンを保存します(このツールを使用して確認します)。

于 2012-12-15T13:00:50.087 に答える
0

access_tokenここでそれについて読んでください:https : //developers.facebook.com/docs/howtos/login/extending-tokens/

ログインからすでに acces_token を取得した後、最後に配置します。

他の API 呼び出しと同じ方法で出力を取得します。

于 2012-12-12T05:54:40.810 に答える