【发布时间】:2015-06-03 13:14:06
【问题描述】:
我已经为此寻找答案已经有一段时间了。我在这里查看了其他问题,但找不到与我的情况相关的问题。谷歌搜索问题也没有帮助。
基本上,我使用 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;
}
它在一台服务器上提供:
注意(8):未定义偏移量:1 [APP/vendors/Zend/Gdata/ClientLogin.php, line 150]
另一方面:
注意 (8):未定义的偏移量:1 [APP/vendors/Zend/Gdata/ClientLogin.php,第 150 行] 致命错误:在 /home/home/mysite/app/vendors/Zend/Gdata/App.php:717 中包含消息“预期响应代码 200,需要 403 授权”的未捕获异常“Zend_Gdata_App_HttpException”:717 堆栈跟踪:#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/mysi te/app/vendors/Zend/Gdata/App.php 在第 717 行
注意:我正在使用 CakePHP 1.3 和 Zend Framework 1.12.7。我只是想从 Google Plus 中检索某个帐户的图像。用户输入他们的电子邮件和密码,应用程序应该提取他们的图像。
我似乎找不到这个问题的答案。谷歌是否完全停止了 API?用法有什么不对吗?
提前致谢。
【问题讨论】:
-
你需要切换到Oauth2。客户端登录已关闭。
-
@DalmTo 这不是那个问题的重复。我检查了它,它在很多方面都不相关。我正在使用 ZendFramework 1 Gdata 类使用
Zend_Gdata_ClientLogin进行连接以仅检索数据。另一个示例处理 .NET 并通过 API 动态插入图像。除了基本用法(身份验证方法、zf 版本、google 本身等)之外,可能导致问题的差异还有很多。 -
我的意思是谷歌端的客户端登录端点已被关闭。您无法使用登录名和密码访问任何 Google API。您必须切换到开放式身份验证。
标签: php cakephp zend-framework google-plus gdata