欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

google sheet API php

程序员文章站 2022-03-13 22:05:32
...

google sheet API php

1 首先第一点 弄清楚
A 你是通过API 接口操作自己账号的google sheet
B 别人给你权限 你去操作别人的google sheet

两个方法获取的授权不同
A 你是通过API 接口操作自己账号的google sheet
官方链接 https://developers.google.com/sheets/api/quickstart/php
google sheet API php
1 自己填写 然后会下载下一个 credentials.json 这个文件 放在的工作目录
google sheet API php
2 可以直接去下载代码
链接 https://github.com/googleapis/google-api-php-client/releases
我下载的是2.4.1
google sheet API php
3 复制此段代码 放到你的工作目录
google sheet API php
注意这里
google sheet API php
目前是只读权限 如果是你自己的 你可以更改为
$client->setScopes(Google_Service_Sheets::SPREADSHEETS);
这个是所有的权限

4 去命令行执行
google sheet API php
运行 第三步的文件

这里是故障排查
google sheet API php
必须是 ssl
运行完成后 会在工作目录生成一个 token.json 文件

目前位置 自己google sheet的授权操作 已完成
但是文件不能直接去浏览器运行 暂时无解
google sheet API php
这里有操作的示例 自己看下 不做说明

B 别人给你权限 你去操作别人的google sheet
1 去上面的第二步 下载源文件
2 在创建项目 https://console.developers.google.com/apis/dashboard。

google sheet API phpgoogle sheet API php
google sheet API php
3 点击启用API并启用Google sheet APIgoogle sheet API php

google sheet API php
google sheet API php
点击 enable 启用

4 转到“ 凭据”,然后单击“ 创建凭据”,然后选择“ 服务帐户**”
在下拉菜单中选择“ 新服务帐户 ”。给帐户起个名字,没关系。
对于角色 I,选择项目 -> 服务帐户执行者
对于“ **类型”,选择“ JSON”(默认设置)并下载文件。该文件包含一个私钥,因此请务必小心,毕竟这是您的凭据
google sheet API php
google sheet API php
google sheet API php
google sheet API php
google sheet API php
google sheet API php
google sheet API php
浏览器自动下载 json文件
google sheet API php
**完成 我下面的代码已将此文件重命名为 credentials-email.json 注意

授权 Google sheet
最后,编辑您要访问的Google sheet的共享权限,
您的email 就职最后的那个截图 email google sheet API php

然后共享email地址的View(如果您只想读取文件)或Commenter或Edit(如果您需要读/写)访问权限。
google sheet API php
google sheet API php
google sheet API php
单个 google sheet的授权已经结束

测试访问一下

require __DIR__ . '/google-api/vendor/autoload.php';
if (php_sapi_name() != 'cli') {
    throw new Exception('This application must be run on the command line.');
}
function getClient()
{
    $client = new Google_Client();
    $client->setApplicationName('Google Sheets API PHP Quickstart');
    $client->setScopes(Google_Service_Sheets::SPREADSHEETS);
    $client->setAuthConfig('credentials-email.json');
    $client->setAccessType('offline');
    $client->setPrompt('select_account consent');
	
    return $client;
}

$client = getClient();
$service = new Google_Service_Sheets($client);

//https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit
// 此处可以自己换成对应的google sheet id
//$spreadsheetId = '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms';
$spreadsheetId = '*********';
$range = 'A2:E';
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
$values = $response->getValues();


if (empty($values)) {
    print "No data found.\n";
} else {
    print "Name, Major:\n";
    foreach ($values as $row) {
        // Print columns A and E, which correspond to indices 0 and 4.
        printf("%s, %s\n", $row[0], $row[4]);
    }
}

ok 正常输出

A 你是通过API 接口操作自己账号的google sheet
B 别人给你权限 你去操作别人的google sheet 操作有限

代码层面上两者不同点 在于
google sheet API php
这个方法 别的代码都是可通用的