【Google Apps Scripts】 デバッグまとめ

401 Unauthorized

エラー内容

Exception: Request failed for XXX returned code 401. Truncated server response: 
<html><head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>401 Unauthorized</title>
</head>
<body text=#000000 bgcolor... (use muteHttpExceptions option to examine full response)
    at myFunction(コード:15:30)

 事象

GASでGoogle Cloud Functionの認証情報を取得しようと思った時に、認証情報をつけてリクエストしてるのに何故かエラーでこけていた。

(認証情報の取得周りは下記記事にお世話になりました)

https://qiita.com/kyhei_0727/items/d6b1cb33ce90b99e8129

function myFunction() {
  // トリガーURLを指定
  var url = "トリガーURL";
  
  // 認証トークンを取得
  var idtoken = ScriptApp.getIdentityToken()

  // リクエストヘッダを指定
  var header = {
    Authorization: "Bearer " + idtoken
  }

  // 関数を実行
  var response = UrlFetchApp.fetch(url, {
    method: 'POST',
    headers:header
  });
  
  // HTTPステータスコードを取得
  var responseCode = response.getResponseCode();

  if (responseCode === 200) {
    Logger.log("レスポンス: " + response);
    Logger.log("正常終了しました。");
  }else{
    Logger.log("レスポンス: " + response);
    Logger.log("エラーが発生しました。");
  }
}

対処法

Google Cloud Functionの対象の関数をデプロイし直す必要があった。

デプロイしないと関数に正しいクライアント ID が設定されないらしい

(記事にも記載されてましたが見落としてました)

Leave a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Scroll to Top