Google Sheet 連携
Last updated
Was this helpful?
Was this helpful?
// --- ここであなたの API キーと Chatbot ID を定義します ---
const API_KEY = '<実際の API キーに置き換えてください>';
const CHATBOT_ID = '<実際の Chatbot ID に置き換えてください>';
// --- --- --- --- --- --- --- --- --- --- --- ---
/**
* MaiAgent API にメッセージを送信し、応答内容を直接返します。
* API キーと Chatbot ID はスクリプト冒頭で定義した定数を使用します。
* is_streaming は false に固定し、conversation と attachments は送信しません。
*
* @param {string} messageContent 送信するメッセージ内容。
* @return {string} API 応答内の "content" フィールドの内容、またはエラーメッセージ。
*/
function maiagent(messageContent) {
// API_KEY と CHATBOT_ID が設定済みかどうかをチェックします
if (API_KEY === 'YOUR_API_KEY' || CHATBOT_ID === 'YOUR_CHATBOT_ID') {
const warningMessage = '警告:API キーまたは Chatbot ID がスクリプト内でまだ設定されていません。スクリプトを編集し、YOUR_API_KEY と YOUR_CHATBOT_ID を置き換えてください。';
Logger.log(warningMessage);
// ここでエラーをスローするか警告を返すかを選択でき、無効な API 呼び出しを防止できます
// throw new Error(warningMessage);
return warningMessage;
}
const url = `https://api.maiagent.ai/api/v1/chatbots/${CHATBOT_ID}/completions/`;
const payload = {
message: {
content: messageContent
},
is_streaming: false
};
const options = {
method: 'post',
contentType: 'application/json',
headers: {
'Authorization': `Api-Key ${API_KEY}`
},
payload: JSON.stringify(payload),
muteHttpExceptions: true // true に設定することで、API が返す可能性のあるエラーメッセージを処理できます
};
try {
const response = UrlFetchApp.fetch(url, options);
const responseCode = response.getResponseCode();
const responseBody = response.getContentText();
if (responseCode === 200) {
Logger.log('API 呼び出し成功:');
Logger.log(responseBody); // デバッグしやすいよう、完全な元の応答を引き続き記録します
try {
const jsonResponse = JSON.parse(responseBody);
if (jsonResponse && typeof jsonResponse.content !== 'undefined') {
return jsonResponse.content; // content フィールドの値を直接返します
} else {
Logger.log('API 応答は成功しましたが、"content" フィールドが欠落しているか、形式が一致しません。');
Logger.log(responseBody);
return 'エラー: API 応答は成功しましたが、"content" フィールドが欠落しています。';
}
} catch (parseError) {
Logger.log(`API 応答 JSON の解析時にエラーが発生しました: ${parseError.toString()}`);
Logger.log(`元の応答内容: ${responseBody}`);
return `エラー: API 応答の解析に失敗しました - ${parseError.toString()}`;
}
} else {
Logger.log(`API 呼び出しに失敗しました、応答コード: ${responseCode}`);
Logger.log(`エラー応答内容: ${responseBody}`);
return `エラー: ${responseCode} - ${responseBody}`;
}
} catch (e) {
Logger.log(`API 呼び出し時に例外が発生しました: ${e.toString()}`);
Logger.log(e.stack); // より詳細なデバッグのため、スタックトレースを記録します
return `例外: ${e.toString()}`;
}
}