Facebook图形API-触发“;编辑您提供的信息";要重新显示的对话框
我的应用程序允许通过Facebook进行用户身份验证。我正在调用FB Graph API以获取登录用户的详细信息,如Facebook图形API-触发“;编辑您提供的信息";要重新显示的对话框,facebook,facebook-graph-api,Facebook,Facebook Graph Api,我的应用程序允许通过Facebook进行用户身份验证。我正在调用FB Graph API以获取登录用户的详细信息,如 https://graph.facebook.com/<fbUserId> https://graph.facebook.com/ 但有时我发现电子邮件地址不是返回的字段之一。我认为这是因为当提示用户允许我的应用访问他们的公共配置文件和电子邮件地址时,用户选择不提供他们的电子邮件地址。但是,我的应用程序需要电子邮件地址。我是否可以通过Graph API告诉FB重新
https://graph.facebook.com/<fbUserId>
https://graph.facebook.com/
但有时我发现电子邮件地址不是返回的字段之一。我认为这是因为当提示用户允许我的应用访问他们的公共配置文件和电子邮件地址时,用户选择不提供他们的电子邮件地址。但是,我的应用程序需要电子邮件地址。我是否可以通过Graph API告诉FB重新出现“编辑您提供的信息”对话框,以便用户随后可以选择提供他们的电子邮件地址?我想你是在问如何重新提示拒绝许可的用户,以便要求他们授予已经拒绝的许可 如果是这样的话,您可以重新提示以前被拒绝的权限-正如您所指出的,如果用户已经拒绝了权限,则不会多次提示用户接受该权限 要重新请求,请在对FB.Login()的调用(javascript)或对登录对话框的调用中使用
auth\u type:rerequest
;我相信移动SDK会自动处理这一问题(例如,IOS SDK中的FBSDKLoginManager)
请注意,在您的特定示例中,用户可能无法通过API访问电子邮件地址,即使他们确实授予您电子邮件
权限,因为他们可能有无法访问的地址、没有确认地址的用户、使用移动电话号码注册Facebook等
因此,您可能需要为用户构建一个用户界面,以便手动提供他们的电子邮件地址,如果这些信息对于您的应用程序来说确实是必要的谢谢您的回复,这真的很有帮助。似乎我的应用程序正在使用此URL登录FB,并将我的应用程序的客户端id作为参数传递。您知道我是否可以使用auth_type rerequest作为此调用的参数重新请求吗?有几个不同的登录流,因此我不确定您使用的是哪一个-如果您将用户登录到“服务器端”,则对/access_令牌的调用应该是该过程的第二部分,首先是将用户重定向到
https://www.facebook.com/dialog/oauth?
如果响应类型为code
,则在对/access\u令牌端点的调用中使用该代码将代码交换为令牌-如果是,则是对/dialog/oauth的调用需要您指定auth\u type:rerequest