在php中使用google drive api列出所有文件的错误

时间:2018-02-12 07:22:00

标签: php google-api google-drive-api google-oauth google-api-php-client

我正在使用PHP处理谷歌驱动器API。我在使用此驱动器api时遇到错误。我正在使用谷歌api客户端库" google / apiclient ^ 2.0"。我正在尝试使用google身份验证登录用户并查看驱动器中可用的所有文件,我正在使用此库,但它显示错误:

  

注意:未定义的属性:Google_Client :: $ files in   第31行/Applications/XAMPP/xamppfiles/htdocs/google_app/index.php

     

致命错误:未捕获错误:调用成员函数listFiles()   null在/Applications/XAMPP/xamppfiles/htdocs/google_app/index.php:31   堆栈跟踪:#0   /Applications/XAMPP/xamppfiles/htdocs/google_app/index.php(55):   retrieveAllFiles(Object(Google_Client))#1 {main}引入   第31行/Applications/XAMPP/xamppfiles/htdocs/google_app/index.php

{{1}}

实际上我正在尝试使用我的文件ID检索我的Google云端硬盘中的所有文件,然后设置状态自动发布特定文件。请帮我摆脱这个错误。

提前致谢。

1 个答案:

答案 0 :(得分:0)

  

“未经验证的使用超出限制的每日限制”

表示您在未正确验证脚本的情况下发出请求。你的fetchAccessTokenWithAuthCode可能还有些什么。

你可能会考虑这些行

function getOauth2Client() {
    try {

        $client = buildClient();

        // Set the refresh token on the client. 
        if (isset($_SESSION['refresh_token']) && $_SESSION['refresh_token']) {
            $client->refreshToken($_SESSION['refresh_token']);
        }

        // If the user has already authorized this app then get an access token
        // else redirect to ask the user to authorize access to Google Analytics.
        if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {

            // Set the access token on the client.
            $client->setAccessToken($_SESSION['access_token']);                 

            // Refresh the access token if it's expired.
            if ($client->isAccessTokenExpired()) {              
                $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
                $client->setAccessToken($client->getAccessToken()); 
                $_SESSION['access_token'] = $client->getAccessToken();              
            }           
            return $client; 
        } else {
            // We do not have access request access.
            header('Location: ' . filter_var( $client->getRedirectUri(), FILTER_SANITIZE_URL));
        }
    } catch (Exception $e) {
        print "An error occurred: " . $e->getMessage();
    }
}

从我的示例项目oauth2php

中删除了代码
  

未定义的属性Google_Client

表示您未正确声明Google客户端

  

未捕获错误:在

中调用null上的成员函数listFiles()

如果您删除$参数并调用$ service-> files-> listFiles();

会发生什么?