一部のページの一部のユーザーに対して、「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 によって与えられ、さらに使用するためにセッション変数に保存します。