Scrapbox-Google-API
2021-06-06 13:27:15 自動で認証画面を出して、access tokenを取得できるようにした
2021-05-04 17:35:52 headers
を追加できるようにした
初期化
script.jslet _auth;
export function init({clientId, clientSecret, scopes}) {
_auth = {clientId, clientSecret, scopes};
}
APIを叩く
script.jsexport 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.jsimport {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;
}