1

一部のページの一部のユーザーに対して、「CurlException: 3: URL が設定されていません!」が発生する iframe ページ タブ facebook アプリがあります。$facebook->api("/me") を呼び出すときの例外。

コードは次のとおりです。

$config = array();
$config['appId'] = APPID;
$config['secret'] = APPSECRET;
$config['cookie'] = true;
$config['fileUpload'] = false; // optional

$facebook = new Facebook($config);

$facebook->setExtendedAccessToken();

$access_token = $facebook->getAccessToken();

if (isset($_GET['tk'])&&($_GET['tk']!="")){
$_SESSION['appat'] = $_GET['tk'];
}

if ($_SESSION['appat']!="")
$access_token = $_SESSION['appat'];

$facebook->setAccessToken($access_token);       

$user = $facebook->getUser();

if ($user) {
    try {
        $user_profile = $facebook->api('/me');
    } catch (FacebookApiException $e) {
        trace("exception $e");
    }
}

注 : アクセス トークンは、アプリのホームページで受信した GET 変数として Javascript SDK によって与えられ、さらに使用するためにセッション変数に保存します。

4

1 に答える 1

0

IPV6 の問題により、Facebook API に次の行を含める必要があります。

Facebook::$CURL_OPTS[CURLOPT_IPRESOLVE] = CURL_IPRESOLVE_V4;

ただし、この代替手段は最大のphpのバージョン5.3でのみ機能します

解決:

if((phpversion()>= 5.3))
{ 
   Facebook::$CURL_OPTS[CURLOPT_IPRESOLVE] = CURL_IPRESOLVE_V4; 
}
于 2013-10-25T18:38:52.360 に答える