Я интегрирую Календарь Google в свое приложение для Android. Пользователь должен авторизоваться для доступа к информации о событиях. Я использую GoogleAuthorizationRequestUrl для создания URL запроса авторизации. Код выглядит следующим образом (в приведенном ниже фрагменте я заменил исходный идентификатор клиента на строку CLIENT_ID):
String url = new GoogleAuthorizationRequestUrl(CLIENT_ID, "http://localhost", "https://www.googleapis.com/auth/calendar.readonly").build();
URL, который создает GoogleAuthorizationRequestUrl:
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".
Странно то, что неверный URL-адрес запроса я получаю только тогда, когда готовлю APK к публикации. В моей среде отладки GoogleAuthorizationRequestUrl создает правильный URL.
Кто-нибудь имеет представление об этом поведении?
Спасибо, -Ali
Если кто-то прочитает этот пост в поисках решения, я запустил мою реализацию, добавив следующие 2 записи в proguard.cfg:
-keep class com.google.api.client.** { *; } -keep class com.google.api.services.calendar.model.** { *; }