我有一个iframe页面标签Facebook应用程序,对于某些页面上的某些用户,会引发“CurlException:3:No URL set!”调用$ 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");
}
}
注意:访问令牌由Javascript sdk作为应用主页上收到的GET变量提供,我将其存储到会话变量中以供进一步使用。
答案 0 :(得分: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;
}