本頁在引導使用者如何利用 Google Apps Script,將 MaiAgent 的強大 AI 功能整合到 Google Sheets 中。透過這種方式,您將能夠直接在表格中呼叫您的 MaiAgent Chatbot,並實現對多個輸入的批次處理,大幅提升工作效率。
透過 Google Apps Script 將 MaiAgent 整合至 Google Sheets,為自動化和提升生產力開闢了新的可能性。技術人員可以利用此方法,根據具體需求客製化試算表,使其成為強大的 AI 互動工具,無論是內容生成、資料分析還是自動化應答,都能更加得心應手。
// --- 在這裡定義您的 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()}`;
}
}