我已经在很长一段时间内一直在寻找答案。我在这里查看了其他问题,但无法找到与我的情况相关的问题。谷歌搜索这个问题也没有用。
基本上,我使用ZF1的Gdata类来访问照片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;
}
在一台服务器上,它给出了:
注意(8):未定义的偏移量:1 [APP / vendors / Zend / Gdata / ClientLogin.php,第150行]
另一方面:
注意(8):未定义的偏移量:1 [APP / vendors / Zend / Gdata / ClientLogin.php,第150行] 致命错误:未捕获的异常&#39; Zend_Gdata_App_HttpException&#39;消息&#39;预期响应代码200,获得403授权&#39;在/home/home/mysite/app/vendors/Zend/Gdata/App.php:717堆栈跟踪:#0 /home/home/mysite/app/vendors/Zend/Gdata.php(221):Zend_Gdata_App-&gt; performHttpRequest(&#39; GET&#39;,&#39; https://picasaw ...&#39;,Array,NULL,NULL,NULL)#1 / home / home / mysite / app / vendors / Zend /Gdata/App.php(883):Zend_Gdata-&gt; performHttpRequest(&#39; GET&#39;,&#39; https://picasaw ...&#39;,数组)#2 / home / home /mysite/app/vendors/Zend/Gdata/App.php(771):Zend_Gdata_App-&gt; get(&#39; https://picasaw ...&#39;,NULL)#3 / home / home / mysite / app / vendors / Zend / Gdata / App.php(213):Zend_Gdata_App-&gt; importUrl(&#39; https://picasaw ...&#39;,&#39; Zend_Gdata_Phot ...&# 39;,NULL)#4 /home/home/mysite/app/vendors/Zend/Gdata.php(162):Zend_Gdata_App-&gt; getFeed(&#39; https://picasaw ...&#39;, &#39; Zend_Gdata_Phot ...&#39;)#5 /home/home/mysite/app/vendors/Zend/Gdata/Photos.php(175):Zend_Gdata-&gt; getFeed(&#39; {{3 } ...&#39;,&#39; Zend_Gdata_Phot ...&#39;)#6 / home / home / mysite / app / controllers / photos_ in / home / home / mysite / app / vendors / Zend第717行/Gdata/App.php
注意:我正在使用CakePHP 1.3和Zend Framework 1.12.7。我只是想从某个帐户的Google Plus中检索图片。用户输入他们的电子邮件和密码,应用程序应提取他们的图像。
我似乎无法找到答案。谷歌完全停止了API吗?用法不正确吗?
提前致谢。
答案 0 :(得分:5)
Zend_Gdata使用ClientLogin,该版本已于2012年4月20日弃用,并于2015年5月26日关闭。此代码将不再需要切换到使用Oauth2。
您可以使用当前Google PHP client library进行身份验证,然后使用在此处创建的访问令牌来访问它。 This answer may help