Я искал для этого ответ на некоторое время. Я рассмотрел другие вопросы здесь, но не смог найти подходящего для моей ситуации. Проблема с поиском не была полезной.Получить изображения Google Plus с использованием Zend Framework 1 Gdata
В принципе, я использую класс Gdata ZF1 для доступа к фотографиям api. Это работало несколько недель назад, но перестало работать (я не уверен, произошло ли изменение кода, или Google полностью остановил API).
Мой код выглядит следующим образом:
private function _loadZendLibraries()
{
set_include_path(APP.'vendors');
require_once('Zend/Loader.php');
$Zend_Loader = new Zend_Loader();
$Zend_Loader->loadClass('Zend_Gdata');
$Zend_Loader->loadClass('Zend_Gdata_ClientLogin');
$Zend_Loader->loadClass('Zend_Gdata_AuthSub');
$Zend_Loader->loadClass('Zend_Gdata_Photos');
$Zend_Loader->loadClass('Zend_Gdata_Photos_UserQuery');
$Zend_Loader->loadClass('Zend_Gdata_Photos_AlbumQuery');
$Zend_Loader->loadClass('Zend_Gdata_Photos_PhotoQuery');
$Zend_Loader->loadClass('Zend_Gdata_App_Extension_Category');
}
function checkGoogleImages(){
$this->_loadZendLibraries();
$service_name = Zend_Gdata_Photos::AUTH_SERVICE_NAME;
$user = '********@gmail.com';
$pass = '********';
try {
$this->client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service_name);
} catch (Zend_Gdata_App_Exception $e) {
$this->Session->setFlash("Error: " . $e->getMessage(). "<br /> You need go to Google+ => Settings => Applications and APPROVE the application to connect.", 'flash_failure');
$this->Session->delete('GOOGLE_USER');
$this->redirect($this->referer());
}
print "<pre>";
print_r($this->client);
exit;
}
На одном сервере это дает:
Notice (8): Undefined offset: 1 [APP/vendors/Zend/Gdata/ClientLogin.php, line 150]
А с другой стороны:
Notice (8): Undefined offset: 1 [APP/vendors/Zend/Gdata/ClientLogin.php, line 150] Fatal error: Uncaught exception 'Zend_Gdata_App_HttpException' with message 'Expected response code 200, got 403 Authorization required' in /home/home/mysite/app/vendors/Zend/Gdata/App.php:717 Stack trace: #0 /home/home/mysite/app/vendors/Zend/Gdata.php(221): Zend_Gdata_App->performHttpRequest('GET', ' https://picasaw ...', Array, NULL, NULL, NULL) #1 /home/home/mysite/app/vendors/Zend/Gdata/App.php(883): Zend_Gdata->performHttpRequest('GET', ' https://picasaw ...', Array) #2 /home/home/mysite/app/vendors/Zend/Gdata/App.php(771): Zend_Gdata_App->get(' https://picasaw ...', NULL) #3 /home/home/mysite/app/vendors/Zend/Gdata/App.php(213): Zend_Gdata_App->importUrl(' https://picasaw ...', 'Zend_Gdata_Phot...', NULL) #4 /home/home/mysite/app/vendors/Zend/Gdata.php(162): Zend_Gdata_App->getFeed(' https://picasaw ...', 'Zend_Gdata_Phot...') #5 /home/home/mysite/app/vendors/Zend/Gdata/Photos.php(175): Zend_Gdata->getFeed(' https://picasaw ...', 'Zend_Gdata_Phot...') #6 /home/home/mysite/app/controllers/photos_ in /home/home/mysite/app/vendors/Zend/Gdata/App.php on line 717
ПРИМЕЧАНИЕ: Я использую CakePHP 1.3 вместе с Zend Framework 1.12.7. Я просто пытаюсь получить изображения из Google Plus для определенной учетной записи. Пользователь вводит свой адрес электронной почты и пароль, и приложение должно извлекать их изображения.
Кажется, я не могу найти ответ на этот вопрос. Google полностью остановил API? Что-то в использовании неверно?
Заранее спасибо.
Возможный дубликат [Вставить фотографию ERROR: Удаленный сервер вернул ошибку: (403) Запрещено] (http://stackoverflow.com/questions/30567126/insert-photo-error-the-remote-server-returned -an-error-403-forbidden) – DaImTo
вам нужно переключиться на Oauth2. клиентский логин был закрыт. – DaImTo
@DalmTo это не дубликат этого вопроса. Я проверил его, и это не актуально во многих аспектах. Я использую класс ZendFramework 1 Gdata для подключения с помощью 'Zend_Gdata_ClientLogin' для извлечения данных. Другой пример касается .NET и динамического вставки изображений через API. Есть так много различий, которые могут вызвать проблему, отличную от базового использования (метод проверки подлинности, версия zf, сама Google и т. Д.). – Adon