既に有効なauth_tokenを持っている場合は、FacebookのPHPログイン方法をバイパスする方法
-
25-10-2019 - |
質問
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/
所属していません StackOverflow