0

Flash/AS2 で Google gdata API クライアントを作成しています (残念ながら、現時点では AS3 への移行はオプションではありません)。ClientLogin 経由のログインは正常に機能しますが、後続のリクエストは、302 を回避するために将来のリクエストに含めることになっている gsessionid を含む 302 リダイレクトを返します。

Flash/AS2、AFAIK では、http エラー応答本文を実際にクエリすることはできません。そのため、302 が返された後にこの gsessionid を実際に確認する方法はありません。有効な GoogleLogin 認証トークンを既に持っている場合、HTTP 200 応答内で有効な gsessionid を返す gdata api 呼び出しはありますか、またはこれは中間者プロキシなしでは不可能ですか?

4

1 に答える 1

0

gsessionid を返す必要がある唯一の Google Data API は、Calendar Data API です。私の知る限り、これを行う人は他にいません。

そうは言っても、一般的にここにはオプションがあります:

  1. 試したように聞こえるリダイレクト本文から gsessionid クエリ パラメータをスクレイピングします。(一般に、これは壊れやすく、良い考えではありません。)
  2. Location:リダイレクトのヘッダー内にある gsessionid クエリ パラメータを使用します。
  3. S=リダイレクトにはCookieも含まれます。今後のリクエストのためにこの Cookie が設定されていることを確認できれば、Google カレンダーはそれを gsessionid クエリ パラメータの代わりに使用します。

これらのいずれもうまくいかない場合、唯一のオプションはプロキシを作成することです。リダイレクトの外部で gsessionid を取得する方法はなく、Calendar Data API はそれなしではリクエストを処理しません。

于 2009-12-23T06:49:56.903 に答える