通过 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 'ma​​il' 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推送 还需要用到哪些东西

OneSignal - 使用来自 url 的自定义图像从 android 应用发送通知

基于androi的医院挂号预约系统app

实时音频流到移动设备 - 动态播放速度

智能卡读卡器有啥实现方式吗?

在 android 8+ 上收到来自 firebase 的推送时应用程序崩溃