说明:当用户通过 Facebook 登录功能登录您的应用时,您可以访问此用户保存在 Facebook 的一些数据。 权限是向用户询问您是否可以访问这些数据的方式。 您可以访问哪些数据由用户的隐私设置和您请求的权限共同决定。
权限是随登录请求或 API 调用一同传递的字符串。
您的应用可以随时请求额外的权限,甚至在用户首次登录后。请求新权限时,应用的用户将收到这些新权限的请求,但可以选择拒绝。
当用户已登录,上方列出的许多 API 也可用于之后在使用应用时请求其他权限,而不仅仅用于首次登录时。
登录后,用户还可以随时在 Facebook 界面撤销已授予应用的权限。因此,最好让您的应用定期检查所获得的权限,尤其是在新平台发布应用时。
FacebookSession::setDefaultApplication(
'1719520245027862',
'f2c74e369ef13a3190708f12b660eb05');
$session = new \Facebook\FacebookSession($_SESSION['fb_access_token']);
$request = new FacebookRequest(
$session,
'GET',
'/me/permissions'
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
/* handle the result */
返回结果:
{
"data": [
{
"permission": "public_profile",
"status": "granted"
},
{
"permission": "publish_actions",
"status": "granted"
},
{
"permission": "user_friends",
"status": "declined"
}
]
}
通过调用图谱 API 端点撤销特定权限:DELETE /{user-id}/permissions/{permission-name}
$request = new FacebookRequest(
$session,
'DELETE',
'/me/permissions/public_profile'
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
/* handle the result */
该请求必须使用当前应用的用户访问口令或应用访问口令进行。如果请求成功,您将收到 true 的响应。
通过调用该图谱 API 端点,允许用户彻底取消授权应用或撤销登录:DELETE /{user-id}/permissions
$request = new FacebookRequest(
$session,
'DELETE',
'/me/permissions'
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
/* handle the result */