Scrapbox-Google-API
2021-06-06 13:27:15 自動で認証画面を出して、access tokenを取得できるようにした
2021-05-04 17:35:52 headersを追加できるようにした
初期化
code:script.js
let _auth;
export function init({clientId, clientSecret, scopes}) {
_auth = {clientId, clientSecret, scopes};
}
APIを叩く
code: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を取得する
有効期限が切れそうだったら更新する
code: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;
}