Facebook SDK 6.0 for Unity:我不明白权限是如何工作的



我真的不明白权限是如何工作的。让我解释一下:

  1. 我的开发者帐户中设置了一个Facebook应用程序
  2. 我已经定义了一个测试应用程序
  3. 在我使用Facebook SDK的Unity应用程序中,我调用这个登录函数:

    string permissions = "public_profile,user_bithday,user_location";
    FB.Login (permissions, LoginCallback);
    
  4. 回调后,我请求授予的权限,我得到了:

    request response: {"data":[{"permission":"public_profile","status":"granted"},{"permission":"email","status":"granted"},{"permission":"publish_actions","status":"granted"},{"permission":"user_birthday","status":"granted"},{"permission":"user_likes","status":"granted"},{"permission":"user_photos","status":"granted"},{"permission":"user_friends","status":"granted"}]}
    

我不得不说,我仍在尝试使用相同的Facebook应用程序、来自不同Unity项目的不同登录(当然来自编辑器)制作SDK。我获得的权限是我在3周前开发的一个项目中请求的权限。因为一切都在起作用,我专注于一些不同的事情。今天,我做了一个新项目,请求第3点中登录功能中定义的权限。

我的问题是:为什么我要获得我没有要求的权限?当我在不同的设备上部署应用程序时,我会遇到同样的问题吗?[EDIT]更重要的是,为什么我没有得到我要求的权限"user_location"?它甚至没有说请求的许可被拒绝了。[/EDIT]

这个想法是使用相同的Facebook应用程序,但有两个不同的Unity项目:一个项目是将在iOS和Android上部署的游戏,另一个是Mac和Windows的独立应用程序,允许授权人员修改游戏(比如说游戏编辑器)。正如您所猜测的,这些项目将需要不同的权限。这是双重的吗?还是因为我在同一个Facebook应用程序中使用了两个不同的项目,所以我会遇到问题?

为帮助者欢呼:-)

一旦用户授予某个Facebook应用程序权限,它们就会留在那里,除非开发人员或用户明确将其拿走;FB.Login()调用是为了确保您至少拥有所请求的权限。

顺便说一句,Facebook建议只在你需要使用权限的时候才请求权限;请求更多权限是通过FB.Login("just_the_new_permission_you_need")完成的,它不会带走用户迄今为止所提供的内容。

tl;是的,使用两个具有相同appid的项目意味着一个项目的权限将被授予另一个项目,反之亦然。

最新更新