search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

Access Google Sheets with PHP

Access Google Sheets with PHP

PHP: 7.2

在一些小型的專案或工具之中,如果把 Google Spreadsheets 當成是資料來源端來使用,這樣既可以滿足人為操作的需求,又可以透過程式自動化處理相關邏輯。

Get API token

在正式操作之前,我們必須先拿到操作 Google API 的權限。

  • Google Developers Console 建立一個新專案
  • 進到該專案後,選擇「啟用 API 和服務」
  • 搜尋 「Google Sheets API」
  • 啟用 「Google Sheets API」

Enable Google Sheets API

  • 啟用後回到專案 Dashboard,並建立一個「服務帳戶憑證」

Create Service Account

  • 填入服務帳戶的資訊

Service Account Info

  • 進到「服務帳戶」裡新建「金鑰」

Create Credentials

  • 金鑰類型選擇 「JSON」
  • 完成後,你會下載到一個金鑰的 JSON 檔

Notice: 金鑰的 JSON 檔只要遺失就拿不回來了,必須妥善保存

  • 把你的 Google Sheet 檔案分享給剛剛 6. 建立「服務帳戶」時產生的信箱

Share File

  • 取得你的 Google Sheet ID:https://docs.google.com/spreadsheets/d/{YOUR_SHEET_ID}/edit#gid=0

Usage with PHP

首先,需要安裝 Google API PHP Client

composer require google/apiclient:^2.0

讀取資料

require __DIR__ . '/vendor/autoload.php';

// 建立 Google Client
$client = new \Google_Client();
$client->setApplicationName('Google Sheets and PHP');
// 設定權限
$client->setScopes([\Google_Service_Sheets::SPREADSHEETS]);
$client->setAccessType('offline');
// 引入金鑰
$client->setAuthConfig(__DIR__ . '/credentials.json');

// 建立 Google Sheets Service
$service = new \Google_Service_Sheets($client);

// Google Sheet ID
$spreadsheetId = 'YOUR SHEET ID';
// 取得 Sheet 範圍
$getRange = "A1:L20";

// 讀取資料
$response = $service->spreadsheets_values->get($spreadsheetId, $getRange);
$values = $response->getValues();
print_r($values);

寫入資料

require __DIR__ . '/vendor/autoload.php';

// 建立 Google Client
$client = new \Google_Client();
$client->setApplicationName('Google Sheets and PHP');
// 設定權限
$client->setScopes([\Google_Service_Sheets::SPREADSHEETS]);
$client->setAccessType('offline');
// 引入金鑰
$client->setAuthConfig(__DIR__ . '/credentials.json');

// 建立 Google Sheets Service
$service = new \Google_Service_Sheets($client);

// Google Sheet ID
$spreadsheetId = 'YOUR SHEET ID';
// 取得 Sheet 範圍
$updateRange = 'A3:B3';
// 值
$values = [['林小瑜', 26]];

// Update Sheet
$body = new \Google_Service_Sheets_ValueRange([
    'values' => $values
]);

$params = [
    'valueInputOption' => 'RAW'
];

$updateSheet = $service->spreadsheets_values->update($spreadsheetId, $updateRange, $body, $params);

Notice: 更細部的需求可以參考 Google API PHP Client 的文件。

Categories: PHP



熱門推薦

本文由 blogjohnsonluorg 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦