2011-06-16 17 views
1

これは私の前の質問の延長です。それでもいくらか解決されても、私はまだエラーに遭遇しています。私はJavascriptのガイドhereから取り組んでいます。私は今、ページの最後のコードセグメントの下に向かっています。私のページの上部には、私は次のコード(APP IDSECRET IDが私のコードで定義されている)を持っている:さらにFacebook Login Javascriptエラー

<?php 

define('YOUR_APP_ID', '**APP ID**'); 
define('YOUR_APP_SECRET', '**SECRET ID**'); 

function get_facebook_cookie($app_id, $app_secret) { 
    $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 . $app_secret) != $args['sig']) { 
    return null; 
    } 
    return $args; 
} 

$cookie = get_facebook_cookie(YOUR_APP_ID, YOUR_APP_SECRET); 

$user = json_decode(file_get_contents(
    'https://graph.facebook.com/me?access_token=' . 
    $cookie['access_token'])); 

?> 

しかし、今、私は(彼らは何も変わっていないこれらのエラーグーグルます役に立つもの):

私のアプリIDは、エラーコードで正しく表示されています。

Notice: Undefined index: fbs_**MY APP ID** in C:\wamp\www\_header.php on line 10 
Notice: Undefined index: sig in C:\wamp\www\_header.php on line 18 

これはWAMPに関連する問題である可能性がありますか?前もって感謝します。

答えて

1

あなたのブラケットを確認してください。ブラケット階層の間で多くの時間単純な混乱は、これらの不愉快なエラーを修正することができます。

2

それは$ COOKIE [ 'FBSは、'。$ APP_ID]が存在しない、それがCOOKIEのvarが(設定されたりしない)空であることを意味していることを意味し

+0

@geneis。私の質問を読んだら、** APP ID **と** SECRET ID **が私のコードで実際のIDに置き換えられていることを何度も言及します。 – tnw

+1

編集した私の答え – genesis

+0

クッキーのvarはどのように空であろうか?私はそれを以下のように定義しています: '$ cookie = get_facebook_cookie(YOUR_APP_ID、YOUR_APP_SECRET);'また、これはPHPでどこに定義されているかは関係ありませんが、関数の上に定義され、何も変更されませんでした。 – tnw

0

私はクッキー内のvarをチェックするための簡単なチェックを追加しました。 これは私のために働く。

function get_facebook_cookie($app_id, $application_secret) 
{ 
    $args = array(); 
    if (!isset($_COOKIE['fbs_' . $app_id])) { 
    //BOOHOO, NO COOKIE; 
    return $args; 
    } 

    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; 
} 
0

なぜFacebook PHP SDKを使用しませんか? $ COOKIEの[「FBS」という

// Read the cookie created by the JS API 
$cookie = trim($_COOKIE['fbs_' . FB_APP_ID], '\\"'); 
parse_str($cookie, $data); 

// Startup the Facebook object 
$fb = new Facebook(array(
    'appId' => FB_APP_ID, 
    'secret' => FB_APP_SECRET 
)); 

// Say we are using the token from the JS 
$fb->setAccessToken($data['access_token']); 

// It should work now 
var_dump($fb->getUser()); 

注:私はそれは秘密のアプリをチェックしませんが、それは私のために働く、このようにそれを作りました。 FB_APP_ID]変数は、JavaScriptでFB.loginメソッドを呼び出した後でのみ使用できます。

また、このように、あなたはJSのAPIを初期化するとき、クッキーはPHPから読み取ることができるようにすることを確認してください:

FB.init({ 
    appId : 'YOUR APP ID', 
    cookie : true 
}); 

はそれが助け願っています。 PHP SDKのgithubのに

リンク:私はこれをよく知ってるhttps://github.com/facebook/php-sdk/