0

我正在将 Google 日历集成到我的 Android 应用程序中。用户需要授权才能访问事件信息。我使用 GoogleAuthorizationRequestUrl 来构建授权请求 URL。代码如下(在下面的代码片段中,我将原始客户端 ID 替换为字符串 CLIENT_ID):

String url = new GoogleAuthorizationRequestUrl(CLIENT_ID, 
                    "http://localhost", 
                    "https://www.googleapis.com/auth/calendar.readonly").build();

GoogleAuthorizationRequestUrl 构建的 URL 是:

https://accounts.google.com/o/oauth2/auth?b=https://www.googleapis.com/auth/calendar.readonly&client_id=CLIENT_ID&redirect_uri=http://localhost&response_type=code

代替

https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/calendar.readonly&client_id=CLIENT_ID&redirect_uri=http://localhost&response_type=code

换句话说,我希望 URL 中有“scope=https://www.googleapis.com/auth/calendar.readonly”,但我有“b=https://www.googleapis.com/auth/calendar.readonly” ”。

奇怪的是,我只有在准备发布 APK 时才会收到错误的请求 URL。在我的调试环境中,GoogleAuthorizationRequestUrl 构建了一个正确的 URL。

有人知道这种行为吗?

谢谢,-阿里

4

1 回答 1

0

如果有人会阅读这篇文章以寻找解决方案,我通过在 proguard.cfg 中添加以下 2 个条目来运行我的实现:

-keep class com.google.api.client.** { *; }

-keep class com.google.api.services.calendar.model.** { *; }
于 2012-03-22T00:49:13.943 回答