1

これは私の前の質問のちょっとした拡張です。それがある程度解決されたので、まだエラーが発生しています。私は Javascript ガイドhereに取り組んでいます。私は今、ページの最後のコード セグメント、一番下に向かっています。ページの上部に、次のコードがあります (コードでAPP IDSECRET IDが定義されています)。

<?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 に関連する問題である可能性はありますか? 前もって感謝します。

4

4 に答える 4

2

$ COOKIE['fbs '.$app_id] が存在しないことを意味し、COOKIE var が空 (または設定されていない) ことを意味します

于 2011-06-16T15:16:43.750 に答える
1

ブラケットを確認してください。多くの場合、ブラケット階層間の単純な混乱によって、これらの厄介なエラーを修正できます。

于 2011-06-16T16:57:14.450 に答える
0

Facebook PHP SDK を使用しないのはなぜですか? 私はこのようにしました。アプリの秘密をチェックしませんが、私にとってはうまくいきます:

// 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());

$ COOKIE['fbs 'に注意してください。FB_APP_ID] 変数は、JavaScript で FB.login メソッドを呼び出した後にのみ使用できます。

また、次のように、JS API を初期化するときに PHP からの Cookie の読み取りを許可していることを確認してください。

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

それが役に立ったことを願っています。

PHP SDK の github へのリンク: https://github.com/facebook/php-sdk/

于 2011-08-05T15:56:59.417 に答える
0

Cookie の 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;
}
于 2011-06-27T16:06:12.880 に答える