2009-12-22 4 views
0

J'écris un client google gdata API dans Flash/AS2 (malheureusement, passer à AS3 n'est pas une option pour le moment). La connexion via ClientLogin fonctionne correctement, mais les requêtes suivantes renvoient une redirection 302 qui inclut un gsessionid que je suis supposé inclure dans les demandes futures pour éviter les 302. Flash/AS2, AFAIK, ne me permet pas d'interroger un corps de réponse d'erreur http de quelque façon que ce soit, donc je n'ai aucun moyen de voir ce gsessionid après le retour du 302. Existe-t-il un appel gdata api qui me renverra un gsessionid valide dans une réponse HTTP 200 si j'ai déjà un jeton d'authentification GoogleLogin valide, ou est-ce impossible sans un proxy man-in-the-middle?Possibilité de demander gsessionid sans réponse 302

Répondre

0

La seule API de données de Google qui devrait renvoyer un gsessionid est l'API de données de calendrier. Aucun des autres ne le fait, à ma connaissance.

Cela étant dit, en général, il y a des options ici:

  1. Grattez le paramètre de requête gsessionid du corps redirect, qu'il sonne comme vous avez essayé. (En général, ceci est fragile et n'est pas une bonne idée.)
  2. Utilisez le paramètre de requête gsessionid situé dans l'en-tête Location: de la redirection.
  3. La redirection contiendra également un cookie S=. Si vous pouvez vous assurer que ce cookie est défini pour les demandes futures, Google Agenda l'utilisera à la place d'un paramètre de requête gsessionid.

Si aucune de ces options ne fonctionne pour vous, votre seule option est d'écrire un proxy. Il n'y a aucun moyen d'obtenir le gsessionid en dehors de la redirection, et l'API de données de calendrier ne servira pas les demandes sans elle.

Questions connexes