Использование результата из AccountManager.getAuthToken андроида через Zend_Gdata (401 несанкционированный) - PullRequest
4 голосов
/ 02 августа 2011

Мне нужно получить токен авторизации с устройства Android (на стороне клиента), используя AccountManager.getAuthToken , а затем повторно использовать его через 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/");

Это продолжает выдавать 'Zend_Gdata_App_HttpException' с сообщением 'Ожидаемый код ответа 200, получено 401.

Я пытался следовать рекомендациям для различных API данных Google , но безуспешно

1 Ответ

0 голосов
/ 02 августа 2011

Единственная причина, по которой вы должны увидеть разницу между запросами AuthSub к двум сервисам, - это проблема области действия. Просмотрите номер три в документах AuthSub и убедитесь, что используемый вами токен имеет доступ к GMail.

...