我真的不明白权限是如何工作的。 让我解释一下:
在我使用Facebook SDK的Unity应用程序中,我调用此登录功能:
string permissions = "public_profile,user_bithday,user_location";
FB.Login (permissions, LoginCallback);
在回调之后,我要求获得授予的权限,我得到了:
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应用程序,但使用2个不同的Unity项目:一个项目是将部署在iOS和Android上的游戏,另一个是用于Mac和Windows的独立应用程序,允许授权人员使用修改游戏(让我们说游戏编辑器)。你可以猜到,项目需要不同的权限。这是不可或缺的,或者因为我在同一个Facebook应用程序中使用了2个不同的项目,我会遇到问题吗?
为帮助人员干杯: - )
答案 0 :(得分:1)
一旦用户授予了某个Facebook应用程序权限,他们就会留在那里,除非开发者或用户明确地将其删除; FB.Login()调用是为了确保您至少拥有您所请求的权限。
顺便提一下,Facebook建议只在您需要使用它们的时间点上申请权限;使用FB.Login(" just_the_new_permission_you_need")要求获得更多权限,并且它不会带走用户迄今为止提供的内容。
tl;是的,使用具有相同appid的两个项目意味着一个项目的权限将被授予另一个项目,反之亦然。