google sheet API php

google sheet API php

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

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

4 去命令行执行
在这里插入图片描述
运行 第三步的文件

这里是故障排查
在这里插入图片描述
必须是 ssl
运行完成后 会在工作目录生成一个 token.json 文件

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

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

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
3 点击启用API并启用Google sheet API在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
点击 enable 启用

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

授权 Google sheet
最后,编辑您要访问的Google sheet的共享权限,
您的email 就职最后的那个截图 email 在这里插入图片描述

然后共享email地址的View(如果您只想读取文件)或Commenter或Edit(如果您需要读/写)访问权限。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
单个 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 操作有限

代码层面上两者不同点 在于
在这里插入图片描述
这个方法 别的代码都是可通用的

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值