GASでOAuth2認証しREST-APIを実行する方法まとめ



トークンの取得

function Get_TOKEN() {

const data = {

'client_id' : ★ClientID,

'client_secret' : ★SecretKey

}

var header = {

'accept' : 'application/json',

}

var options = {

'method' : 'POST',

'headers' : header,

'contentType': 'application/x-www-form-urlencoded',

'payload' : data,

'muteHttpExceptions' : true

};

var res = UrlFetchApp.fetch((★BaseDomain + ★URL_GetToken), options);



var json = res.getContentText();

var token = JSON.parse(json)

console.log(token.access_token);

return token.access_token;



}

※ ★の部分はグローバル変数で定義しているところ。適宜変更する

自分的学び
  • BodyにIDとKeyを書く
  • UrlFetchApp.fetchのBodyは「payload」
  • contentTypeのoptionsに書いてもいいはず

トークンを使ってAPIにリクエストを出す

URL、TOKEN、メソッド、BODYからリクエストを出して、Responseを返す変数。

自分的学び
  • Headerに要素’Authorization’を追加し、”Bearer (token文字列)”を記載する。ここらへんのルールを読み解くのに苦労した

トークンの削除

これも共通ルール? トークン作りっぱなしだと制限に引っ掛かる可能性があるため、原則作ったトークンは最後に削除するようにする。

【合言葉づくり】

const Encode = Utilities.base64Encode((ClientID + ":" + SecretKey));

【トークン削除】

function Revoke_TOKEN(token) {


var data = {
'token' : token
}

var header = {
'accept' : 'application/json',
'Authorization': 'Basic '+ Encode,
}

var options = {
'method' : 'POST',
'headers' : header,
'contentType': 'application/x-www-form-urlencoded',
'payload' : data,
'muteHttpExceptions' : true
};

var res = UrlFetchApp.fetch((BaseDomain_CrowdStrike + URL_RevokeToken), options);

var json = res.getContentText();
var token = JSON.parse(json)

console.log(token);

}
自分的学び
  • 「clientID:clientSecret」の文字列をエンコードして、合言葉を作成する

たがりブログ