我一直在尋找答案這個相當長的一段時間。我已經研究過其他問題,但找不到與我的情況相關的問題。谷歌搜索這個問題也沒有幫助。獲取谷歌加圖片使用Zend Framework 1 GDATA
基本上,我使用ZF1的GData類來訪問照片的API。這是幾個星期前的工作,但停止工作(我不確定是否有代碼更改或谷歌完全停止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檢索某個帳戶的圖片。用戶輸入他們的電子郵件和密碼,應用程序應該提取他們的圖像。
我似乎無法找到這個問題的答案。谷歌是否完全停止API?用法中的某些內容是否有誤?
在此先感謝。
可能重複[插入照片錯誤:遠程服務器返回錯誤:(403)禁止](http://stackoverflow.com/questions/30567126/insert-photo-error-the-remote-server-returned -an錯誤-403-禁止) – DaImTo
你需要切換到OAuth2。客戶端登錄被關閉。 – DaImTo
@達爾姆這不是重複的問題。我檢查過它,它在很多方面都不相關。我使用ZendFramework 1個GDATA類使用'Zend_Gdata_ClientLogin'只檢索數據連接。另一個例子處理.NET並通過API動態插入圖像。有很多區別可能會導致除基本用法(身份驗證方法,zf版本,谷歌本身等等)之外的問題 – Adon