我遵循此处的教程: https://developers.google.com/google-apps/calendar/quickstart/android
项目编译并运行然后给出错误403:“访问未配置.pii(日历api)未启用您的项目。”
我已经四处搜索了,对于大多数人来说这似乎是因为他们的包名错了,但是我直接从代码中复制并粘贴了它。我也想知道为什么我们生成api密钥但从未将其复制到android项目中。我发现某个地方可以将API密钥添加到android清单中,如下所示:
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data android:name="com.google.android.calendar.v2.API_KEY" android:value="MYAPIKEY" />
我已经尝试过v2和v3(我认为是当前版本)。我尝试使用我的密钥库和android密钥库生成密钥,既指定了应用程序,又指定了任何应用程序。
将api密钥添加到项目中以摆脱此错误的正确方法是什么?或者还有其他什么我做错了吗?
编辑:多人建议的帖子没有解决我的问题,因为我已将其设置为允许来自所有Android应用程序的连接(与“任何引用者允许”相同)并且它仍然给我错误。答案 0 :(得分:0)
见最后一行?
<meta-data android:name="com.google.android.calendar.v2.API_KEY" android:value="MYAPIKEY" />
用您的密钥替换 MYAPIKEY 。
此外,您的问题与此问题非常相似:Getting Error 403: Access Not Configured. Please use Google Developers Console to activate the API for your project。
幸运的是,它有一个可行的解决方案,试试吧。
答案 1 :(得分:0)
我遇到了确切的问题,我终于明白了。与Google Map API不同,生成的“API密钥”不起作用。您必须创建一个“OAuth 2.0客户端ID”,其中SHA1和应用程序ID与您的项目匹配。由于使用了SHA1和应用程序ID,因此您无需再在AndroidManifest.xml中声明API密钥。
以我的测试项目为例,API Key适用于Android上的Google Map,但不适用于Google Calendar。我必须创建OAuth 2.0客户端ID才能使其正常工作。
答案 2 :(得分:0)
问题仅在于生成SHA-1密钥。 keytool -exportcert -alias advance -keystore /Users/EazyWorldPeace/Desktop/Advance/yourkey.jks -list -v
根据路径设置在mac / windows上运行此命令,并保留与应用程序中相同的程序包名称,这样就可以了。
让我知道它是否与你合作 - :)