2011-01-04 2 views
6

J'essaie d'avoir accès au flux todo de Google avec cette url:Autorisant pour Google ToDo List (AuthToken, SecID)

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}

Si j'ouvre dans mon navigateur avec une SecID correcte, ça me montre bien ce que je veux.

Maintenant, la question est: comment puis-je obtenir secid par programmation (spécifiquement, dans un programme Java)? J'ai accès au authToken (à partir de CalendarService), mais je n'ai aucune idée de comment l'utiliser pour autoriser mon accès à l'URL ci-dessus.

J'ai essayé d'utiliser l'URL http://google.com/accounts/ServiceLogin, mais je n'ai trouvé aucun exemple.

Toute aide, s'il vous plaît?

Répondre

1

D'après ce que je lis secid est un identifiant de session obtenu à partir des cookies de votre navigateur. Considérant que votre cas utilise Java, ce qui implique une application serveur. Si c'est le cas, vous voulez abandonner complètement l'idée d'utiliser secid.

Au lieu de cela, vous voulez vérifier Google's OAuth2 documentation. Si vous utilisez Java, vous serez probablement intéressé par the web-server OAuth flow. Portez une attention particulière aux diagrammes de séquence.

Les étapes clés comprennent:

1) Obtenir un code d'autorisation de Google OAuth avec le consentement de l'utilisateur. Pour cela, vous redirigez l'utilisateur vers Google avec la portée appropriée. Consultez la liste de calendar scopes pour votre cas. Une fois que l'utilisateur a donné son accord, Google vous redirige avec un code d'autorisation.

2) Appelez Google OAuth avec le code d'autorisation et les informations d'identification de votre application pour échanger un jeton d'accès.

3) Appelez l'API Google Agenda à l'aide du jeton d'accès. Et si vous utilisez le client Java de Google comme suggéré par @ ChaosPredictor, il est probable que certaines étapes sont déjà intégrées dans le client Java (et votre code sera beaucoup plus simple).