【发布时间】:2011-09-18 22:45:11
【问题描述】:
长期以来,我一直在疯狂地尝试为我的用户获取访问令牌。我在许多网站上阅读以通过使用 getSession() 并从中获取 access_token 以某种方式获取它......它给了我未定义的函数错误..我也用谷歌搜索过,所有解决方案都说使用更新后的 SDK,但我的已更新,它仍然行不通...所以我终于找到了另一种获取访问令牌的解决方案,但这似乎为所有用户提供了相同的访问令牌...知道问题出在哪里吗?所有用户肯定不能拥有相同的令牌吧?
$app_id = $facebook->getAppId();
$app_secret = $facebook->getApiSecret();
function callFb($url, $params)
{
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => $url,
CURLOPT_POSTFIELDS => http_build_query($params),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_VERBOSE => true
));
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$params=array('client_id'=>$app_id, 'type'=>'client_cred', 'client_secret'=>$app_secret);
$url = "https://graph.facebook.com/oauth/access_token";
$access_token = callFb($url, $params);
$access_token = substr($access_token, strpos($access_token, "=")+1, strlen($access_token));
【问题讨论】:
-
Yuliy 已经为您的问题提供了解决方案,但我有一个问题要问您。您是否打算保留这些访问令牌?请记住,您从 FB 获得的访问令牌确实会过期,除非您在获取它们时特别请求 offline_access。此外,存储 FB 用户访问令牌存在潜在的安全风险。
-
我已获得offline_access。
标签: facebook facebook-graph-api access-token