1

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

  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 应用程序制作 SDK,来自不同 Unity 项目的不同登录名(当然来自编辑器)。我获得的权限是我在 3 周前开发的一个项目中要求的权限。因为一切正常,我专注于不同的事情。今天我做了一个新项目,要求在第 3 点登录功能中定义的权限。

我的问题是:为什么我获得了我没有要求的权限?当我将应用程序部署在不同的设备上时,我会遇到同样的问题吗? [编辑] 比那些更重要的是,为什么我没有获得我要求的权限“user_location”?甚至没有说请求的权限已被拒绝。[/编辑]

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

为帮助家伙干杯:-)

4

1 回答 1

1

一旦用户授予了某个 Facebook 应用程序权限,除非开发者或用户明确将其取消,否则他们会一直留在那里;FB.Login() 调用可确保您至少拥有所请求的权限。

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

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

于 2014-09-18T23:32:09.200 回答