4

AccountManager.getAuthTokenを使用して Android デバイス (クライアント側) から認証トークンを取得し、それを Zend_Gdata (サーバー側) 経由で再利用する必要があります。

カレンダー 'cl' authTokenTypeを使用すると、期待どおりに機能します。

Android ソース:

String calendarToken = getAuthToken(account, 'cl' ...

PHP ソース:

$token = // value retrieved via Android 'calendarToken'

$client = new Zend_Gdata_HttpClient;
$client->setClientLoginToken($token);

$gData = new Zend_Gdata($client);
$feed = $gData->getFeed("http://www.google.com/calendar/feeds/default/private/full");

これは機能しますが、Gmail ' mail ' authTokenTypeを使用する場合、物事はそれほどスムーズではありません

Android ソース:

String mailToken = getAuthToken(account, 'mail' ...

PHP ソース:

$token = // value retrieved via Android 'mailToken'

$client = new Zend_Gdata_HttpClient;
$client->setClientLoginToken($token);

$gData = new Zend_Gdata($client);
$feed = $gData->getFeed("https://mail.google.com/mail/feed/atom/");

これにより、「予期される応答コード 200、401 を取得しました。

さまざまなGoogle Data APIのガイドラインに従おうとしましたが、うまくいきませんでした

4

1 に答える 1

0

2 つのサービスへの AuthSub リクエストに違いが見られる唯一の理由は、スコープの問題です。AuthSub ドキュメントの項目 3を確認し、使用しているトークンが GMail にアクセスできることを確認してください。

于 2011-08-02T08:54:28.903 に答える