通过 Zend_Gdata 使用来自 android 的 AccountManager.getAuthToken 的结果(401 未授权)
Posted
技术标签:
【中文标题】通过 Zend_Gdata 使用来自 android 的 AccountManager.getAuthToken 的结果(401 未授权)【英文标题】:Using result from android's AccountManager.getAuthToken via Zend_Gdata (401 unauthorized) 【发布时间】:2011-10-18 01:47:25 【问题描述】:我需要使用 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”的“Zend_Gdata_App_HttpException”。
我尝试遵循各种Google Data APIs 的指导方针,但没有成功
【问题讨论】:
【参考方案1】:您应该看到对两个服务的 AuthSub 请求之间存在差异的唯一原因是范围问题。查看the AuthSub docs 中的第三项并检查以确保您使用的令牌可以访问 GMail。
【讨论】:
以上是关于通过 Zend_Gdata 使用来自 android 的 AccountManager.getAuthToken 的结果(401 未授权)的主要内容,如果未能解决你的问题,请参考以下文章
openfire怎么实现androi推送 还需要用到哪些东西