登录时如何申请facebook权限?

use*_*111 3 facebook-graph-api

写了一个基于facebook api的移动应用程序.如果用户在权限屏幕上取消选择生日作为权限,则应用会中断.我怎样才能获得所需的许可,所以他们无法取消选择它?

Chr*_*ton 6

您所要求的不是直接可能的,但它是间接可能的.如果你考虑以下两个Facebook功能,你将能够得到你需要的东西.

1.重新请求权限

在Graph 2.0中,Facebook引入了"拒绝"权限的概念,用户可以根据需要取消选择权限.默认情况下,如果您在SDK中运行登录方法,Facebook将不会再次要求用户提供权限.

但是,有一个参数auth_type,您可以使用"rerequest"输入该参数,专门重新询问拒绝的权限.

有关详细信息,请参阅Facebook的文档.

2.登录后检查权限

使用me/permissions API端点,您可以查看用户提供的权限:

{
  "data": [
    {
      "permission": "installed", 
      "status": "granted"
    }, 
    {
      "permission": "public_profile", 
      "status": "granted"
    }, 
    {
      "permission": "user_friends", 
      "status": "declined" // the user didn't accept this one
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

把它带到一起

以下是您的登录流程的外观:

  1. 提示用户登录
  2. 登录成功后,检查用户的权限,看看他们是否已授予您所有"强制"权限
  3. 如果他们没有,请向用户显示"您未提供X权限的消息,请再次登录以提供"
  4. 重新运行登录方法,但添加auth_type为"rerequest"
  5. 这次打开时,可选的权限将是强制性的.要继续下一步,他们必须提供权限.

希望有所帮助!