如何获取用户访问令牌? [英] How to get user access token?
本文介绍了如何获取用户访问令牌?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试通过 Facebook API 访问分数以获取我朋友的分数列表.当我尝试访问 /[facebook id]/scores
时,即使使用我的应用访问令牌,我也会收到以下错误:
FacebookApiException [ 0 ]:请求此资源需要用户访问令牌.~ APPPATH/classes/basefacebook.php [ 1039 ]
如何获取用户访问令牌?
更新:阅读http://developers.facebook.com/docs/reference/api/permissions/,我已经确认应用访问令牌和用户访问令牌是两个不同的访问令牌.问题仍然存在,我如何获得用户访问令牌?
解决方案
我看到您正在使用 php-sdk.因此,您需要您的朋友使用类似于 的脚本访问您的应用程序例子:
'191149314281714','秘密' =>'73b67bf1c825fa47efae70a46c18906b',));//获取用户ID$user = $facebook->getUser();//根据用户是否登录,我们可能拥有也可能没有这些数据.////如果我们在这里有一个 $user id,这意味着我们知道用户已经登录//Facebook,但我们不知道访问令牌是否有效.一个访问//如果用户退出 Facebook,则令牌无效.如果($用户){尝试 {//继续知道您有一个已通过身份验证的登录用户.$user_profile = $facebook->api('/me');} catch (FacebookApiException $e) {错误日志($e);$用户=空;}}//根据当前用户状态,需要登录或注销 url.如果($用户){$logoutUrl = $facebook->getLogoutUrl();} 别的 {$loginUrl = $facebook->getLoginUrl(array('scope'=>'offline_access'));}//此调用将始终有效,因为我们正在获取公共数据.$naitik = $facebook->api('/naitik');?><!doctype html><html xmlns:fb="http://www.facebook.com/2008/fbml"><头><title>php-sdk</title><风格>身体 {font-family: 'Lucida Grande', Verdana, Arial, sans-serif;}h1 a {文字装饰:无;颜色:#3b5998;}h1 a:悬停{文字装饰:下划线;}</风格>头部><身体><h1>php-sdk</h1><?php if ($user): ?><a href="<?php echo $logoutUrl; ?>">注销</a><?php 其他:?><div>使用由 PHP SDK 处理的 OAuth 2.0 登录:<a href="<?php echo $loginUrl; ?>">使用 Facebook 登录</a>
<?php endif ?><h3>PHP 会话</h3><pre><?php print_r($_SESSION);?></pre><?php if ($user): ?><h3>你</h3><img src="https://graph.facebook.com/<?php echo $user; ?>/picture"><h3>您的用户对象 (/me)</h3><pre><?php print_r($user_profile);?></pre><?php 其他:?><strong><em>您没有连接.</em></strong><?php endif ?><h3>Naitik</h3>的公开资料<img src="https://graph.facebook.com/naitik/picture"><?php echo $naitik['name'];?>