OAuth仅适用于某些Google帐户吗?

时间:2018-10-10 00:00:27

标签: java android android-studio oauth-2.0 google-calendar-api

哦。必须爱OAuth ...

TLDR;我设法从唯一可以找到的android calendar API示例项目中凑齐的OAuth 2.0代码,只能在少数帐户上使用。

半个朋友单击与他们的Gmail的灰色对话框,然后选择他们的帐户,出现需要征求同意的白蓝屏,然后开始繁荣!从Google日历中获取事件。

我的另一半朋友单击带有Gmail的灰色对话框文本,没有出现同意屏幕,并且仅闪烁带有灰色Gmail的灰色对话框,提示他们再次选择帐户。

这里是拼凑在一起的代码:

我的活动java: https://pastebin.com/mcxLfGZR

no code pasted because its very long

Apisynctask.java与之配套: https://pastebin.com/p7Wx2Lm2

no code pasted once again

我的Activity.xml: https://pastebin.com/KELRqYHD AND(继续,因为android studio模板...) https://pastebin.com/Bbev37ye <---以上粘贴的内容

no code pasted once again because long-ish

我相信这是与Android版本,google帐户或设备相关的,并且根本无法缩小范围。

无论如何,我希望能为所有人提供帮助,而不仅仅是像我所说的少数几个人,它只对我和我的一半朋友有用。谢谢!

编辑: 重新弹出时,logcat中不会引发任何错误。代码跳转到了所有地方((我尝试将登录消息放入每个代码块中,以查看运行的地方和失败的地方-永无止境)

1 个答案:

答案 0 :(得分:0)

您可以设置Authorization parameters来创建授权请求。

  

您可以prompt用户通过添加以下内容来重新授权您的应用   认证请求的prompt=consent参数。什么时候   包含prompt=consent,每次都会显示同意屏幕   用户登录到您的应用。因此,请添加prompt=consent   仅在必要时。

     

prompt

     

可选。用空格分隔的区分大小写的提示列表,以提示用户。如果您不指定此参数,则用户将   仅在您的应用首次请求访问权限时提示。可能   值是:

     
      
  • none-授权服务器不显示任何身份验证或用户同意屏幕;如果用户尚未通过身份验证并且未针对请求的范围进行预配置的同意,它将返回错误。您可以不使用它来检查现有的身份验证和/或同意。
  •   
  • consent-授权服务器在将信息返回给客户端之前提示用户同意。
  •   
  • select_account-授权服务器提示用户选择用户帐户。这样一来,在授权服务器上拥有多个帐户的用户就可以在其可能具有当前会话的多个帐户中进行选择。
  •   

注意::如果未指定任何值,并且用户先前未授权访问,则将向用户显示一个同意屏幕。