当用户打开我的画布应用程序时,我会从Facebook得到一个signed_request,从那里我得到user_id和oauth_token。然后,我如何获取access_token并检查/获取用户权限和其他数据?
发布于 2011-11-02 02:31:44
您所说的用户也是access_token,它们应该是完全相同的。
要检查用户权限,可以对/me/permissions进行GET调用,这将返回一个类似于以下内容的数据数组
{
"data": [
{
"installed": 1,
"read_stream": 1,
"manage_notifications": 1,
"manage_pages": 1,
"user_likes": 1,
"user_activities": 1,
"user_interests": 1,
"user_photos": 1,
"user_about_me": 1,
"type": "permissions"
}
]
}根据您希望访问的其他数据,您将需要请求更多权限,然后调用适当的API端点。例如,为了获取用户的基本信息,给/me打电话,或者获取他们的朋友列表/me/friends
您可以在https://developers.facebook.com/docs/reference/api/permissions/上找到所需的所有权限
以及有关在API中的何处调用以检索此处https://developers.facebook.com/docs/reference/api/所需的不同数据位的所有信息。
发布于 2011-11-02 02:08:52
当你说你有他们的“oauth令牌”时--你确定那不是访问令牌吗?您是否可以尝试使用该令牌对/me/permissions进行API调用,并查看其是否正常工作?它应返回用户已授予应用程序的权限列表(可通过该令牌使用)
发布于 2011-11-07 23:23:24
<?php
include '../../src/config.php';
// Get User ID
$user = $facebook->getUser();
// We may or may not have this data based on whether the user is logged in.
//
// If we have a $user id here, it means we know the user is logged into
// Facebook, but we don't know if the access token is valid. An access
// token is invalid if the user logged out of Facebook.
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
// Login or logout url will be needed depending on current user state.
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
$access_token = $facebook->getAccessToken();
$user_xml = "<?xml version=\"1.0\"?>\n";
$user_xml .= "<roots>\n";
$user_xml .= "<access>\n";
$user_xml .= "<token>" . $access_token . "</token>\n";
$user_xml .= "</access>\n";
$user_xml .= "</roots>\n";
echo $user_xml;
} else {
$loginUrl = $facebook->getLoginUrl();
}
?>https://stackoverflow.com/questions/7920763
复制相似问题