Zend Framework: начало работы с Zend_Gdata_ClientLogin

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

Я использую Google Apps в своем домене, поэтому для начала я хотел бы сделать что-нибудь простое, например, перечислить всех пользователей в домене.

Насколько я понимаю, вам нужно использовать Zend_Gdata_ClientLogin вместо, Zend_Gdata_AuthSub поскольку я буду работать с Zend_Gdata_Gapps . Вот что у меня есть на данный момент:

$client = Zend_Gdata_ClientLogin::getHttpClient('[email protected]', 'password');
$gdata = new Zend_Gdata_Gapps($client, 'mydomain.com');
$users = $gdata->retrieveAllUsers();

Однако retrieveAllUsers () выдает исключение с этим сообщением:

Expected response code 200, got 401 <HTML> <HEAD> <TITLE>Token invalid</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF" TEXT="#000000"> <H1>Token invalid</H1> <H2>Error 401</H2> </BODY> </HTML>

Что это обозначает? Что я делаю неправильно? Я не знаю, имеет ли это значение, но я запускаю этот PHP-скрипт локально, но мои приложения Google работают на удаленном сервере. Я использую Zend Framework версии 1.7.5.

Обновление: если кому-то интересно, у меня было еще несколько проблем, с которыми я столкнулся при этом. Я обнаружил, что для использования Zend_Gdata необходимо включить "Provisioning API" в разделе администратора ваших Google Apps. Я обнаружил, что у меня есть только стандартная (бесплатная) версия Google Apps, а это означает, что Provisioning API мне недоступен, если у меня нет основной (платной) версии Google Apps.

Ответов (2)

Решение

Вам не хватает параметра службы, для Google Apps это 'apps'

$client = Zend_Gdata_ClientLogin::getHttpClient('[email protected]', 'password','apps');

Я изучаю, как получить доступ к электронным таблицам Google, и я передаю услугу $.

$service = Zend_Gdata_Spreadsheets::AUTH_SERVICE_NAME;
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);