使用Zend Framework 1 Gdata获取Google Plus图像

Ado*_*don 0 php zend-framework cakephp gdata google-plus

很长一段时间以来,我一直在寻找答案.我在这里查看了其他问题,但找不到与我的情况相关的问题.谷歌搜索这个问题也没有用.

基本上,我使用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;
}
Run Code Online (Sandbox Code Playgroud)

在一台服务器上它给出:

注意(8):未定义的偏移量:1 [APP/vendors/Zend/Gdata/ClientLogin.php,第150行]

另一方面:

注意(8):未定义的偏移量:1 [APP/vendors/Zend/Gdata/ClientLogin.php,第150行]致命错误:未捕获异常'Zend_Gdata_App_HttpException',消息'预期响应代码200,获得403授权'/ 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 ...',数组)#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 /第717行的Gdata/App.php

注意:我使用CakePHP 1.3和Zend Framework 1.12.7.我只是想从某个帐户的Google Plus中检索图片.用户输入他们的电子邮件和密码,应用程序应提取他们的图像.

我似乎无法找到答案.谷歌完全停止了API吗?使用中的某些内容是否正确?

提前致谢.

DaI*_*mTo 5

Zend_Gdata使用ClientLogin,该版本于2012年4月20日弃用,并于2015年5月26日关闭.此代码将不再适用于您需要切换到使用Oauth2.

您可以使用当前的Google PHP客户端库 进行身份验证,然后使用在此处创建的访问令牌来访问它. 这个答案可能有帮助