0

私は次のコードに夢中になっています:

<?php
//Code of http://example.com/facebook/

require_once("../settings.php"); //Providing some settings
function authorize()
{
    header("HTTP/1.1 303 See Other");
    header("Location: https://www.facebook.com/dialog/oauth?client_id=".urlencode($GLOBALS["FacebookConfig"]["appId"])."&redirect_uri=".urlencode("http://example.com/facebook/".(isset($_GET["delete"])?'?delete':''))."&scope=read_mailbox,offline_access");
    exit();
}

require_once("SDK/facebook.php");


if(!isset($_GET["code"]))
{
    authorize();
}

$facebook = new Facebook($GLOBALS["FacebookConfig"]); //$GLOBALS["FacebookConfig"] is defined and set correctly
$user=$facebook->getUser(); //retreive User ID
if(!$user)
{
    header("HTTP/1.1 303 See Other");
    $LoginURL=$facebook->getLoginUrl();
    header("Location: ".$LoginURL); //Endless redirect here
    exit();
}
?>

私の問題は、$user常に残っ0ているため、クライアントが無限にリダイレクトされることです。$userしかし、私はいつもとどまる理由がわかりません0。通常は、現在ログインしているFacebookユーザーのユーザーIDである必要があります。

編集:このよう$GLOBALS["FacebookConfig"]に設定されsettings.phpています:

$GLOBALS["FacebookConfig"] = array();
$GLOBALS["FacebookConfig"]['appId'] = 'appID'; //appID replaced
$GLOBALS["FacebookConfig"]['secret'] = 'appSecret'; //appSecret replaced
$GLOBALS["FacebookConfig"]['fileUpload'] = false;
4

1 に答える 1

1

私の次のコードsettings.phpはエラーを引き起こしました:

ini_set("session.use_cookies", 0);
ini_set("session.use_only_cookies", 0);
ini_set("session.use_trans_sid", 1);
ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 1);
ini_set('session.gc_maxlifetime', 60*10);

これがFacebookAPIに影響を与える可能性があることを知らなかったので、コメントアウトしませんでした。それを削除した後、それは完全に正常に動作します。しかし、それを見つけるのに数時間かかりました...

于 2012-07-20T22:01:41.930 に答える