Google API PHP简单查询示例权限不足

问题描述:

我想从这里运行Google API PHP简单查询示例:https://github.com/google/google-api-php-client/blob/master/examples/service-account.php 我的目标是测试OAuth2并在我的web之间创建服务器到服务器的连接应用和已经分享给我的谷歌电子表格。Google API PHP简单查询示例权限不足

这里就是我有:

$client_id = 'XXX.apps.googleusercontent.com'; //Client ID 
    $service_account_name = '[email protected]'; //Email Address 
    $key_file_location = 'C:/Users/Hp/Downloads/cMessage-638a8a247351.p12'; 
    if ($client_id == '' || !strlen($service_account_name) || !strlen($key_file_location)) { 
     echo missingServiceAccountDetailsWarning(); 
    } 
    $client = new Google_Client(); 
    $client->setApplicationName("cMessage"); 
    $service = new Google_Service_Books($client); 
    /*  * ********************************************** 
     If we have an access token, we can carry on. 
     Otherwise, we'll get one with the help of an 
     assertion credential. In other examples the list 
     of scopes was managed by the Client, but here 
     we have to list them manually. We also supply 
     the service account 
    * ********************************************** */ 
    if (isset($_SESSION['service_token'])) { 
     $client->setAccessToken($_SESSION['service_token']); 
    } 
    $key = file_get_contents($key_file_location); 
    $cred = new Google_Auth_AssertionCredentials(
      $service_account_name, array('https://www.googleapis.com/auth/books'), $key 
    ); 
    $client->setAssertionCredentials($cred); 
    if ($client->getAuth()->isAccessTokenExpired()) { 
     $client->getAuth()->refreshTokenWithAssertion($cred); 
    } 
    $_SESSION['service_token'] = $client->getAccessToken(); 
    /*  * ********************************************** 
     We're just going to make the same call as in the 
     simple query as an example. 
    * ********************************************** */ 
    $optParams = array('filter' => 'free-ebooks'); 
    $results = $service->volumes->listVolumes('Henry David Thoreau', $optParams); 
    echo "<h3>Results Of Call:</h3>"; 
    foreach ($results as $item) { 
     echo $item['volumeInfo']['title'], "<br /> \n"; 
    } 

我尝试运行此,我得到这个:

错误调用get https://www.googleapis.com/books/v1/volumes?q=Henry+David+Thoreau&filter=free-ebooks:(403)没有足够的权限

我我双重检查了我的凭据,时区,并且在我的开发者控制台中启用了Google的Books API。

我不知道我还缺少什么。请帮忙。谢谢。

好吧,我把它工作了!以下是我遇到的情况:

在Google Developer's Console的API & AUTH >> API中,我必须打开几个API和SDK。我不能肯定这使得虽然伎俩,但这里是我已经打开了API和SDK:

联系SDK

的BigQuery API

图书API

Debuglet控制器API

驱动API

硬碟SDK

谷歌Apps Marketplace中SDK

谷歌云SQL

谷歌云存储

谷歌云存储API JSON

Google+的API