4

我需要使用AccountManager.getAuthToken从 Android 设备(客户端)检索身份验证令牌,然后通过 Zend_Gdata(服务器端)重新使用它

当使用日历 'cl' authTokenType时,事情会按预期工作,

安卓源码:

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时,事情就不那么顺利了

安卓源码:

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”的“Zend_Gdata_App_HttpException”。

我尝试遵循各种Google 数据 API的指南,但没有成功

4

1 回答 1

0

您应该看到对两个服务的 AuthSub 请求之间存在差异的唯一原因是范围问题。查看AuthSub 文档中的第三项并检查以确保您使用的令牌可以访问 GMail。

于 2011-08-02T08:54:28.903 回答