Google drive api 如何使用PHP API更新Google电子表格单元格
我想知道如何使用PHP与Google电子表格交互 我已经浏览了很多谷歌的文档,但是,这些都不是我想要的 我的目标是能够使用oAuth(而不是电子邮件/通行证)更改单元格的内容Google drive api 如何使用PHP API更新Google电子表格单元格,google-drive-api,google-api-php-client,Google Drive Api,Google Api Php Client,我想知道如何使用PHP与Google电子表格交互 我已经浏览了很多谷歌的文档,但是,这些都不是我想要的 我的目标是能够使用oAuth(而不是电子邮件/通行证)更改单元格的内容 如果这是一个RTFM问题,请原谅我,但我确实花了两个多星期的时间处理这个问题,但没有结果:/ 驱动器API不提供任何编辑电子表格的方法,包含低级单元格修改方法。请注意,您不能使用Google API PHP客户端库来使用电子表格API。这是我针对我的问题得到的解决方案: 您可以使用库执行此操作 通过以下方式安装库: P
如果这是一个RTFM问题,请原谅我,但我确实花了两个多星期的时间处理这个问题,但没有结果:/ 驱动器API不提供任何编辑电子表格的方法,包含低级单元格修改方法。请注意,您不能使用Google API PHP客户端库来使用电子表格API。这是我针对我的问题得到的解决方案:
您可以使用库执行此操作
require('vendor/autoload.php');
$accessToken=getGoogleTokenFromKeyFile(此处为客户端ID,此处为客户端电子邮件,此处为P12文件路径);
使用Google\Spreadsheet\DefaultServiceRequest;
使用Google\Spreadsheet\ServiceRequestFactory;
ServiceRequestFactory::setInstance(新的DefaultServiceRequest($accessToken));
//加载电子表格和工作表
$worksheet=(新的Google\Spreadsheet\SpreadsheetService())
->获取电子表格()
->getByTitle('xxxxxxxx')//电子表格名称
->获取工作表()
->getByTitle('xxxxxxxxx');//工作表名称
$listFeed=$worksheet->getListFeed();
//取消对此的注释,以了解Google如何称呼您的列名
//打印($listFeed->getEntries()[0]->getValues());
//使用列标题向电子表格中添加新的空行
$listFeed->insert(['name'=>'Simon','age'=>25','gender'=>'male']);
/**
*使用P12密钥文件检索Google API访问令牌,
*客户ID和电子邮件地址
*
*这三样东西可以从
* https://console.developers.google.com/
*通过创建新的“服务帐户”
*/
函数getGoogleTokenFromKeyFile($clientId、$clientEmail、$pathToP12File){
$client=新的Google_客户端();
$client->setClientId($clientId);
$cred=新的谷歌认证断言(
$clientEmail,
数组('https://spreadsheets.google.com/feeds'),
文件获取内容($pathToP12File)
);
$client->setAssertionCredentials($cred);
如果($client->getAuth()->isAccessTokenExpired()){
$client->getAuth()->refreshTokenWithAssertion($cred);
}
$service\u token=json\u decode($client->getAccessToken());
返回$service\u token->access\u token;
}
API v4,可以使用curl。获取访问令牌,然后使用curl。可以更新单行或多行,也可以更新单列或多列。如果要更新单列或单行,请使用 使用PUT方法传递值数据,如
$update['values'] = [[1234]];
对于批量更新,而不是在URL中使用方法值,可以更改为值:batchUpdate。然后在数组中传递其他数据并使用方法POST
你可以参考这个你一直在找什么?使用电子表格提要api有很多这样的例子。一切都在那里。首先了解oauth,您可以在oauth2操场上进行练习。谷歌两者都有。你能给我一个工作的例子吗?我确实获得了oAuth键,甚至成功地获得了电子表格数据,比如标题和mimeType,使用这个:$file=$service->files->get($fileId);打印“标题:”$文件->getTitle();hoever,我不知道该由谁来编辑一个单元格它都在api文档中。或者使用zend作为php包装器。感谢您的帮助,但我只是找到了一个使用zend GData的解决方案,这是目前唯一的方法,因为Google只为.NET、Java和Python的新API提供官方支持!这已经过时了。您好,我如何使用“Web应用程序”而不是“服务帐户”插入行?您好@Subhra,您需要按照中的说明并使用OAuth工作流。开发者也在这里发布了一些OAuth示例:Hi@Simon,谢谢。我能找到答案。
sheetID = FileID
RowORColumnRange = Sheet!A1 or Sheet!B2
$update['values'] = [[1234]];