Авторизоваться и получить доступ к API Google Tasks из приложения Android?
Я пытаюсь добавить поддержку задач Google в свое приложение - в частности, приложение должно иметь возможность добавлять новые задачи.
Я провел большую часть этой недели, пытаясь достичь этого без успеха. В частности, мне не удалось полностью разрешить моему приложению доступ к API. Я нашел 3-5 различных руководств или наборов документации о том, как это сделать:
- https://developers.google.com/google-apps/tasks/oauth-and-tasks-on-android
- https://google-api-client-libraries.appspot.com/documentation/tasks/v1/java/latest/index.html
- https://developers.google.com/google-apps/tasks/instantiate
- http://developer.android.com/google/play-services/auth.html
- http://developer.android.com/reference/com/google/android/gms/auth/GoogleAuthUtil.html
- http://code.google.com/p/google-api-java-client/wiki/OAuth2
Многие из вышеперечисленных противоречат друг другу или, по крайней мере, используют разные API, чье перекрытие не сразу для меня очевидно. Самое близкое, что я получил, - это пример кода, на который есть ссылка в первой ссылке выше (http://bit.ly/UHTKNW). Я могу заставить это скомпилировать и запустить, и даже запросить у пользователя разрешение на доступ к Задачам, как и ожидалось. Но затем происходит сбой с 403 Запрещенным исключением "доступ не настроен". Я предполагаю, что мне нужно предоставить ключ API и / или секрет клиента, но API, используемые в примере, не предоставляют очевидного способа сделать это. Мне также не ясно, нужно ли мне устанавливать отпечаток сертификата подписи, чтобы это работало, и если да, то как это сделать.
Так что я застрял, растерялся и очень расстроен. Любая помощь будет принята с благодарностью.
Благодарю. --Dave
2 ответа
Эти API сильно изменились, я могу понять ваше разочарование.
Ознакомьтесь с самым последним примером приложения. Он содержит инструкции по настройке доступа к API и началу работы.
По сути, вы просто регистрируете свое приложение в консоли API, и ваш код не должен иметь дело с какими-либо ключами API:
GoogleAccountCredential credential = GoogleAccountCredential.usingOAuth2(context, TasksScopes.TASKS);
credential.setSelectedAccountName(accountName);
mService = new com.google.api.services.tasks.Tasks.Builder(new NetHttpTransport(), new GsonFactory(), credential)
.setApplicationName("YourApplicationName").build();
API-интерфейсы Task могут выдавать разные исключения, например, когда пользователь должен подтвердить доступ к вашему приложению. В образце CommonAsyncTask
занимается с ними.
Проверить мой другой ответ Доступ к учетной записи YouTube с помощью accountmanager
это для YouTube, но разница заключается только в том, чтобы передать правильную "ссылку" на код. Надеюсь, поможет.