Авторизация для Google ToDo List (AuthToken, secid) - PullRequest
6 голосов
/ 04 января 2011

Я пытаюсь получить доступ к каналу задач Google с помощью этого URL:

https://www.google.com/calendar/tdl?secid=<SECID>&tdl={%22action_list%22%3A[{%22action_type%22%3A%22get_all%22%2C%22action_id%22%3A%221%22%2C%22list_id%22%3A%2215052708471047222911%3A0%3A0%22%2C%22get_deleted%22%3Afalse}]%2C%22client_version%22%3A-1}

Если я открою это в своем браузере с правильным secid, он покажет мне, что я хочу.

Теперь вопрос: как мне получить secid программно (в частности, в java-программе)? У меня есть доступ к authToken (из CalendarService), но я понятия не имею, как использовать его для авторизации моего доступа к указанному выше URL-адресу.

Я пытался использовать URL http://google.com/accounts/ServiceLogin,, но я не нашел примеров.

Любая помощь, пожалуйста?

1 Ответ

1 голос
/ 17 апреля 2017

Из того, что я прочитал secid - идентификатор сеанса, полученный из файлов cookie браузера. В то время как ваш случай использует Java, что подразумевает серверное приложение. Если это так, вы хотите отказаться от идеи использования secid полностью.

Вместо этого вы хотите проверить документацию Google OAuth2 . Если вы используете Java, скорее всего вас заинтересует поток OAuth веб-сервера . Обратите особое внимание на диаграммы последовательности.

Ключевые шаги включают в себя:

1) Получите код авторизации от Google OAuth с согласия пользователя. Для этого вы перенаправляете пользователя в Google с соответствующей областью действия. Проверьте список областей календаря для вашего случая. Как только пользователь согласится, Google перенаправит вас обратно с кодом авторизации.

2) Чтобы получить токен доступа, позвоните в Google OAuth с кодом авторизации и учетными данными вашего приложения.

3) Вызовите API Календаря Google, используя токен доступа.

И если вы используете Java-клиент Google в соответствии с предложением @ChaosPredictor, скорее всего, некоторые этапы уже включены в Java-клиент (и ваш код будет намного проще).

...