2011-12-16 17 views
5

Facebookのクッキーといくつかの変更を適用することを決めた先日まで、この機能は私のために働いていました。 Facebook cookieとoauth 2.0の変更

function get_facebook_cookie() { 
    $app_id    = '[MyAppID]'; 
    $application_secret = '[MyAppSecrect]'; 

    if(isset($_COOKIE['fbs_' . $app_id])){ 
     $args = array(); 
     parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args); 
     ksort($args); 
     $payload = ''; 
     foreach ($args as $key => $value) { 
       if ($key != 'sig') { 
       $payload .= $key . '=' . $value; 
       } 
     } 
     if (md5($payload . $application_secret) != $args['sig']) { 
       return null; 
     } 
     return $args; 
     } else { 
     return null; 
     } 
} 

私はFBのユーザーが今では私はもうこの情報を取得することができるよということは思えない

$cookie['access_token'] 

と同じように簡単にアクセストークンを取得することができました。

JavaScriptコードに必要な変更を(簡単に)行うことができましたが、PHP側でうんざりしています。私はcodeigniterを使用していますが、私はFB PHP SDKをうまく再生しようとすると多くの問題を抱えています。また、PHP 3 SDKをcodeigniterに組み込む例は見当たりませんでした。私は、このように私はFacebooks APIに次の呼び出しを使用できるようにクッキーからアクセストークンを取得できるようになります迅速かつ汚いソリューションを探して:

'https://api.facebook.com/method/friends.getAppUsers?access_token=' . $cookie['access_token']; 

すべてのヘルプは大歓迎です。

答えて

7

だからfacebookを変更するとクッキー名がfbs_からfbsr_に変わります。

しかし、それ以上の変更がありました。ちょうど次のとおりです。this steps

+1

お礼ありがとうございます。 fbsr_にコードを変更すると、 "if(md5($ payload。$ application_secret)!= $ args ['sig'])のコードでこの行を参照している次のPHPエラー" Message:Undefined index:sig " "何か案は? – Joshua

+0

あなたが実際に持っているものを見るために$ argsをvar_dumpするのが最善の策です。 – Eric

+1

さらに変更がありました。この提案が有効かどうかを確認してください:[link](http://blog.codebusters.pl/en/entry/oauth-20-facebook-changes-and-cookie-problem-in-codeigniter/) – Kokers