webhookの△マークについて

お世話になります。

動作はできてはいるもののWEBHOOKのログに△がでて緑のチェックにならないのでご質問です。

請求書作成アプリ

repotoneで請求書を書き出し、チェックボックスが済になったら

作業依頼書アプリ

チェックボックス 済 にしたい。

現状、動作はできているがwebhookが△。

GAS利用。

原因は302がかえっていることですが、原因がわかれば教えていただきたいです。

function doPost(e) {

try {

console.log('===== Webhook受信開始 =====');

if (!e.postData || !e.postData.contents) {

  console.log('→ POSTデータなし');

  return ContentService

           .createTextOutput(JSON.stringify({ result: "No POST data" }))

           .setMimeType(ContentService.MimeType.JSON);

}

// Webhookから送られてきたJSONを解析

const data = JSON.parse(e.postData.contents);

console.log('Webhookデータ:', JSON.stringify(data));

const record = data.record;

if (!record) {

  console.log('→ recordが存在しない');

  return ContentService

           .createTextOutput(JSON.stringify({ result: "No record in webhook" }))

           .setMimeType(ContentService.MimeType.JSON);

}

const shukko = record\['請求出力区分'\] && record\['請求出力区分'\].value;

if (!shukko || !shukko.includes('済')) {

  console.log('→ 請求出力区分が済ではない:', shukko);

  return ContentService

           .createTextOutput(JSON.stringify({ result: "未済なので処理なし" }))

           .setMimeType(ContentService.MimeType.JSON);

}

const kanriNo = record\['作業書管理番号'\] && record\['作業書管理番号'\].value;

if (!kanriNo) {

  console.log('→ 管理番号なし');

  return ContentService

           .createTextOutput(JSON.stringify({ result: "管理番号なし" }))

           .setMimeType(ContentService.MimeType.JSON);

}

console.log('管理番号:', kanriNo);

// -----------------------

// kintone 作業書アプリ情報

// -----------------------

const domain = 'xxxxxxxxxxxx';  // kintoneサブドメイン

const apiToken = 'xxxxxxxxxxxxxxxxxx';

const appId = 134;

// -----------------------

// 管理番号で検索

// -----------------------

const query = \`管理番号 = "${kanriNo}"\`;

const getUrl = \`https://${domain}.cybozu.com/k/v1/records.json?app=${appId}&query=${encodeURIComponent(query)}\`;

const getRes = UrlFetchApp.fetch(getUrl, {

  method: 'get',

  headers: { 'X-Cybozu-API-Token': apiToken }

});

const result = JSON.parse(getRes.getContentText());

console.log('検索結果:', JSON.stringify(result));

if (!result.records || result.records.length === 0) {

  console.log('→ 該当レコードなし');

  return ContentService

           .createTextOutput(JSON.stringify({ result: "該当レコードなし" }))

           .setMimeType(ContentService.MimeType.JSON);

}

const targetId = result.records\[0\].$id.value;

console.log('対象レコードID:', targetId);

// -----------------------

// レコード更新

// -----------------------

const putUrl = \`https://${domain}.cybozu.com/k/v1/record.json\`;

const body = {

  app: appId,

  id: targetId,

  record: {

    請求書作成区分: { value: \['済'\] } // 複数選択フィールド

  }

};

const putRes = UrlFetchApp.fetch(putUrl, {

  method: 'put',

  headers: {

    'X-Cybozu-API-Token': apiToken,

    'Content-Type': 'application/json'

  },

  payload: JSON.stringify(body)

});

console.log('更新レスポンス:', putRes.getContentText());

console.log('===== Webhook処理終了 =====');

return ContentService

         .createTextOutput(JSON.stringify({ result: "OK" }))

         .setMimeType(ContentService.MimeType.JSON);

} catch (error) {

console.log('エラー発生:', error);

return ContentService

         .createTextOutput(JSON.stringify({ result: "ERROR", message: error.message }))

         .setMimeType(ContentService.MimeType.JSON);

}

}

監査ログ

サービス kintone
モジュール API operation
アクション Webhook notify
結果 FAILED
エラー番号
補足 app id: 61, app name: 見積/請求書アプリ, record id: 202, notification id: 6860d5bb-af49-456f-b795-6bfcb35ce085, event type: UPDATE_RECORD, server url: https://script.google.com/macros/s/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/exec, error type: SERVER_ERROR, status code: 302

よろしくお願いいたします。