Facebook 关于权限的知识整理

说明:当用户通过 Facebook 登录功能登录您的应用时,您可以访问此用户保存在 Facebook 的一些数据。 权限是向用户询问您是否可以访问这些数据的方式。 您可以访问哪些数据由用户的隐私设置和您请求的权限共同决定。

权限是随登录请求或 API 调用一同传递的字符串。

您的应用可以随时请求额外的权限,甚至在用户首次登录后。请求新权限时,应用的用户将收到这些新权限的请求,但可以选择拒绝。

一、登录的同时授予权限:2、facebook PHP版 SDK 身份验证和授权登录

当用户已登录,上方列出的许多 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 */

该请求必须使用当前应用的有效用户访问口令或应用访问口令进行。如果请求成功,您的应用将收到 true 的响应。 如果调用成功,用户的所有用户访问口令都将失效,用户需要重新登录。 由于您取消了应用授权,他们还需要像首次登录时一样授予应用访问权限。

你可能感兴趣的:(Facebook)