【Google apps script】 リフレッシュトークンを使用してAPIをたたきたい

var CLIENT_ID = ‘xxxxxxxxxxxxxx’;
var CLIENT_SECRET = ‘xxxxxxxxxxxxxx’;
var AUTHORIZE_URL = ‘https://accounts.google.com/o/oauth2/auth’;
var TOKEN_URL = ‘https://accounts.google.com/o/oauth2/token’;
var REDIRECT_URI = ‘urn:ietf:wg:oauth:2.0:oob’;

こちらのURLにブラウザでアクセスして承認コードを取得(search console api を使用する場合)
使用するAPIによってscopeを変更

AUTHORIZE_URL + '?client_id='+CLIENT_ID+'&redirect_uri='+REDIRECT_URI+'&scope=https://www.googleapis.com/auth/webmasters.readonly&response_type=code&approval_prompt=force&access_type=offline'

次に、 取得したコードからリフレッシュトークンを取得

    var res = UrlFetchApp.fetch(TOKEN_URL, {
      "method" : "POST",
      payload : {
        "code" : [取得したコード],
        "client_id" : CLIENT_ID,
        "client_secret" : CLIENT_SECRET,
        "redirect_uri" : REDIRECT_URI,
        "grant_type" : "authorization_code"
      },
      muteHttpExceptions : true
    });

リフレッシュトークンを指定して、アクセストークンを取得

  var opt = {
        "method" : "POST",
        "payload" : {
            "client_id" : CLIENT_ID, // 取得した クライアントID
            "client_secret" : CLIENT_SECRET, // 取得した クライアントシークレット
            "refresh_token" : refresh_token, // 取得したリフレッシュトークン
            "grant_type" : "refresh_token"
        },
        "muteHttpExceptions" : true
  };
  var res = UrlFetchApp.fetch(TOKEN_URL, opt);

これで取得したアクセストークンを使用して
APIをたたけばOK!

有効期限が切れそうになったら、アクセストークンを
再取得しよー

コメント

タイトルとURLをコピーしました