既に有効なauth_tokenを持っている場合は、FacebookのPHPログイン方法をバイパスする方法

StackOverflow https://stackoverflow.com/questions/6803953

質問

CodeIgniterプロジェクト内でFacebookグラフAPIアクセスにこのライブラリを使用しています。http://www.haughin.com/code/facebook/

私のWebアプリは、Facebook JS SDKを使用してユーザーのクライアント側を認証し、ログインが完了した直後にユーザーのユーザーIDとセッションオブジェクトがAJAXリクエストを介してサーバーに送信されます。ユーザーの基本情報を受信するためにサーバーからグラフAPIに電話をかけたいので、Facebook-> login()メソッドを呼び出す必要性をバイパスする方法があるかどうか疑問に思っています。 Facebookからリダイレクトしますか?誰かがこれを行う方法を知っていますか?

役に立ちましたか?

解決

Facebook SDKをまったくお勧めしません。自分で物事を行うと、もっと簡単に制御できます。次のようなカール関数を設定するだけです:

function curl($url, $request = 'GET'){
    $ch = curl_init();
    $curlopt = array(
        CURLOPT_URL => $url,
        CURLOPT_CUSTOMREQUEST => $request,
        CURLOPT_CONNECTTIMEOUT => 10,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT        => 60,
        CURLOPT_USERAGENT      => 'facebook-php-2.0',
    );
    curl_setopt_array($ch, $curlopt);
    $response = curl_exec($ch);
    if($response === false)
        trigger_error(curl_error($ch));
    curl_close($ch);
    return $response;
}

そして、次のようなFacebook API機能は次のとおりです。

function fb_api($url, $access_token = false, $request = 'GET'){
    $url = 'https://graph.facebook.com/'.$url;
    if($access_token)
        $url .= (strstr($url, '?') ? '&' : '?').'access_token='.$access_token;
    return json_decode(curl($url, $request), true);
}

次に、次のようにグラフAPIにリクエストを行うことができます。

fb_api('me', $access_token);

他のヒント

どういうわけかCurlをインストールしていない場合、常に私のプロキシライブラリを使用できます。 http://codeigniter.com/forums/viewthread/186250/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top