generated at
Scrapbox-Google-API
scrapboxからGoogle APIを叩くやつ

2021-06-06 13:27:15 自動で認証画面を出して、access tokenを取得できるようにした
2021-05-04 17:35:52 headers を追加できるようにした

初期化
script.js
let _auth; export function init({clientId, clientSecret, scopes}) { _auth = {clientId, clientSecret, scopes}; }

APIを叩く
script.js
export async function exec(pathname, options = {}) { const {headers, ...rest} = options; return await fetch(`https://www.googleapis.com${pathname}`, { headers: { Authorization: `Bearer ${await accessToken()}`, ...headers, }, ...rest, }); }

内部用
access tokenを取得する
有効期限が切れそうだったら更新する
script.js
import {getAuthToken} from '../ScrapboxからGoogle_APIのAccess_Tokenを取得する/script.js'; async function accessToken() { // 有効期限の1分前になったら更新する if ((_auth.expiresIn ?? 0) - new Date().getTime() < 1000 * 60) { const {access_token, expires_in} = await getAuthToken(_auth); _auth.expiresIn = new Date().getTime() + expires_in * 1000; _auth.accessToken = access_token; } return _auth.accessToken; }

#2021-06-06 13:25:28
#2021-05-04 17:35:49
#2021-05-03 17:28:44