所以我正在尝试了解 Unity 的 Facebook API,我想我已经开始掌握它的窍门了......直到这
FB.Login ("public_profile, user_photos, email", AuthCallBack);
如你所见,我显然要求电子邮件许可,但当我尝试在 Unity 中调用它时
Dictionary<string, string> emailDict = new Dictionary<string, string>(){{"email", ""}};
FB.API( "me?fields=email", Facebook.HttpMethod.GET, FBGetEmail, emailDict);
print ("emailDict " + emailDict.Keys);
这只会给我带来我的用户ID。我使用从应用程序获得的相同的新生成的访问令牌进一步深入研究了 Graph Explorer,它显示了以下内容
The field 'email' is only accessible on the User object after the user grants the 'email' permission.
{"id": "952814180948",}
所以我的问题是...有人知道//有人能看到我做错了什么而无法获得电子邮件许可吗?由于问题显然出在生成访问令牌时的初始请求中。我知道权限正在起作用,因为我可以提取和使用我的个人资料图片..只是不是电子邮件:'(
所以我明白了!答案就在 Facebook 文档的一行中。基本上,当在 Unity 的编辑器模式下使用身份验证令牌时,它允许您“获取令牌”,但是这个生成的令牌只有一些默认权限。
您需要实际转到图形资源管理器,并在顶部将您的应用程序设置为您的应用程序(不清楚,我认为它使您转到应用程序页面而不是为您的应用程序生成访问令牌)。
完成此操作后,我可以使用图形浏览器页面上的“获取访问令牌”按钮生成具有所需权限的新访问令牌。
哎呀!整整两天才弄清楚。
2024年4月25日
在 Meata for Developers 应用仪表板中
单击 用例 > 身份验证和帐户创建 > 自定义
在权限部分添加电子邮件