适用于Unity的Facebook SDK 6.0:我不明白权限如何工作

时间:2014-09-16 11:10:27

标签: facebook-login facebook-unity-sdk facebook-permissions

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

  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"}]}
    
  5. 我不得不说我还在尝试使用相同的Facebook应用程序制作SDK,不同的Unity项目(当然是编辑器)的不同登录。我得到的权限是我在3周前开发的项目中提出的权限。因为一切正常,我专注于不同的事情。今天我通过询问第3点中登录功能中定义的权限来创建一个新项目。

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

    我们的想法是使用相同的Facebook应用程序,但使用2个不同的Unity项目:一个项目是将部署在iOS和Android上的游戏,另一个是用于Mac和Windows的独立应用程序,允许授权人员使用修改游戏(让我们说游戏编辑器)。你可以猜到,项目需要不同的权限。这是不可或缺的,或者因为我在同一个Facebook应用程序中使用了2个不同的项目,我会遇到问题吗?

    为帮助人员干杯: - )

1 个答案:

答案 0 :(得分:1)

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

顺便提一下,Facebook建议只在您需要使用它们的时间点上申请权限;使用FB.Login(" just_the_new_permission_you_need")要求获得更多权限,并且它不会带走用户迄今为止提供的内容。

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