Codeigniter 和 google api 集成失败

Codeigniter and google api integration fail

我正在尝试从 codeigniter 调用 google api。我已经将 google api php 库解压缩到 codeigniter 根目录的名为 asset 的目录中。我使用以下代码创建用户。

require_once 'assets/vendor/autoload.php';
$domain="xxxxxxx.com";

class Google_model extends CI_Model
{
    public function __construct()
    {
        parent::__construct();
    }

    function Create_User($dir,$Given_Name,$Family_Name,$User_Name,$Password)//create a user 
    {
        global $domain;
        $UserInstance = new Google_Service_Directory_User(); 
        $NameInstance = new Google_Service_Directory_UserName(); 

        $NameInstance -> setGivenName($Given_Name); 
        $NameInstance -> setFamilyName($Family_Name); 

        $UserInstance -> setName($NameInstance); 
        $UserInstance -> setHashFunction("MD5"); 
        $UserInstance -> setPrimaryEmail("$User_Name@$domain"); 
        $UserInstance -> setPassword(hash("md5", $Password)); 
        $Create_Error=1;
        try 
        { 
            $createUserResult = $dir -> users -> insert($UserInstance); 
            $Create_Error=0;
        } 
        catch (Google_IO_Exception $gioe) 
        { 
            $Create_Error=$gioe->getMessage(); 
        } 
        catch (Google_Service_Exception $gse) 
        { 
            $Create_Error=$gse->getMessage(); 
        } 
        return $Create_Error;
    }

    function Insert_User($First_Name,$Last_Name,$User_Name,$Password)
    {
        global $domain;
        $Error=0;

        $client = new Google_Client();
        $client->setAuthConfig('assets/auth/service_account.json');
        $client->useApplicationDefaultCredentials();
        $client->addScope('https://www.googleapis.com/auth/admin.directory.user');
        $email="admin@$domain";
        $client->setSubject($email);

        $dir = new Google_Service_Directory($client);
        $Error=self::Exist_user($dir,$User_Name);
        if(!$Error)
        {
            $Error=self::Create_User($dir,$First_Name,$Last_Name,$User_Name,$Password);
        }

        return $Error;
    }
}

当我使用 Insert_User 例程创建用户时,在

行调用函数 Create_User 后失败
$createUserResult = $dir -> users -> insert($UserInstance);

出现错误严重性:错误

消息:调用未定义的方法 Google_Service_Directory_User::toSimpleObject()

文件名:Service/Resource.php

行号:108

回溯:

我该如何解决这个问题?

找到失败的原因了。不太可能有人会遇到此错误,但如果有人对此感兴趣,请将原因放在这里 post。原来有一个 class Google_Model 似乎与我选择的模型名称 (Google_model) 冲突。一旦我将声明重写为

class Google_API_Model extends CI_Model

错误消失了..