0

index.php にアクセスすると、すべてが正常に機能し、セッション変数に acces_token が表示されます。

ただし、リンクをクリックして新しいページに移動し、(新しいページで) index.php に戻るリンクをクリックすると、access_token が appId から始まるはるかに短いトークンに変更されます。 .

(編集: この短いトークンがこれであることを発見しました: appid|appsecret)

index.php の正確なコピーにリンクしようとしましたが、同じことが起こります。新しい Facebook インスタンスが作成されていないかのようです...なぜ新しい access_token が作成されないのですか?

以下は私のコードです。アプリにユーザーをログインさせていないことに気付くでしょう。これは、この部分が Javascript SDK を介して別のページで行われるためです。

私は何時間も探していました...アドバイスをよろしくお願いします。

index.php

<?php
include "config.php";
require "ok.php";

?>
<br/><br/>
<a href="link.php">Link.</a>
<br/><br/>
<?php


$user = $facebook->getUser();

$userInfo = $facebook->api("/$user");

?>
<?php d($user); ?>
<strong>PHP Session</strong>
<?php d($_SESSION); ?>

?>

ok.php

<?php

    $fbconfig['appid' ] = "###";
    $fbconfig['secret'] = "###";

    $user            =   null;
    try{
        include_once "facebook.php";
    }
    catch(Exception $o){
        echo '<pre>';
        print_r($o);
        echo '</pre>';
    }

    $facebook = new Facebook(array(
      'appId'  => $fbconfig['appid'],
      'secret' => $fbconfig['secret'],
      'cookie' => true,
    ));


    function d($d){
        echo '<pre>';
        print_r($d);
        echo '</pre>';
    }
?>

config.php

<?php
session_start();

//We log to the DataBase
mysql_connect('...', '...', '...');
mysql_select_db('...');

?>
4

0 に答える 0