无法编辑由服务帐户创建的工作表

时间:2018-12-31 18:35:39

标签: google-api-php-client

我正在使用laravel构建一个演示项目,该项目应使用数据库中的数据创建,格式化和填充工作表。

我不需要持久化工作表,因为我只需要工作表接口主要用于数据输入,因为行可能会成百上千,并且需要即时计算和公式。

一旦用户在行中输入了值,数据将被我的应用程序吸收并存储在数据库中。

这就是为什么我的应用程序的理想设置是服务器到服务器。我已经在开发者控制台上创建了一个服务帐户,该代码可以很好地工作并创建工作表。

 public function __construct()
{   
    /*
    * Prepare to make api calls
    * Get a Google_Client object first to handle auth and api calls, etc.
    * The environment variable is used to access the auth file via useApplicationDefaultCredentials
    */
    $this->client = new \Google_Client();
    $this->client->useApplicationDefaultCredentials();
    $this->client->setApplicationName("media-demo");

    // set the scopes
    $this->client->setScopes(['https://www.googleapis.com/auth/spreadsheets']);
    // $this->client->setAccessType('offline');

    /*
     * Use the authorized Google client to call the Google APIs
     * Build the service object here
    */ 
    $this->sheets = new \Google_Service_Sheets($this->client);

    /* 
    *   Work around for curl error 60 
    */
    $curlHttp = new \GuzzleHttp\Client(['verify' => 'C:\phpweb\cacert.pem']);
    $this->client->setHttpClient($curlHttp);

}

那是我创建客户端的构造方法,这是我使用 Google_Service_Sheets_Spreadsheet()创建电子表格时得到的示例响应:

Google_Service_Sheets_Spreadsheet {
collection_key: "sheets"
developerMetadataType: "Google_Service_Sheets_DeveloperMetadata"
developerMetadataDataType: "array"
namedRangesType: "Google_Service_Sheets_NamedRange"
namedRangesDataType: "array"
propertiesType: "Google_Service_Sheets_SpreadsheetProperties"
propertiesDataType: ""
sheetsType: "Google_Service_Sheets_Sheet"
sheetsDataType: "array"
+spreadsheetId: "1da6OWxxx8dn2cDOduDTFTZUvFpyeYidjFq5nmz3Sr4E"
+spreadsheetUrl: "https://docs.google.com/spreadsheets/d/1da6OWxxx8dn2cDOduDTFTZUvFpyeYidjFq5nmz3Sr4E/edit"

}

根据响应,创建工作表。但是,这是在链接出现在浏览器中复制和粘贴链接的问题: You need permission

用户无法访问创建的工作表。我该如何进行这项工作?

0 个答案:

没有答案