你知道JS版本的 line-bot-sdk-gas 嗎?
line-bot-sdk-gas 是一個基於 Google Apps Script (GAS) 的開發工具,用於整合 LINE Messaging API 和 Google Apps Script。這個工具讓你可以使用 Google Apps Script 編寫自動回覆 LINE 訊息的機器人。透過它,你能夠在 Google Apps Script 環境中管理和處理 LINE 的訊息事件。
這個 SDK 是用 JavaScript 來開發的,因為 Google Apps Script 本身就是基於 JavaScript 的雲端腳本環境。
你可以使用 line-bot-sdk-gas 來完成以下操作:
- 回應 LINE 使用者的訊息
- 發送訊息、圖片、影片等給 LINE 使用者
- 處理各種事件,例如文字訊息、按鈕回應、位置訊息等
安裝後,你可以在 Google Apps Script 中撰寫像這樣的範例程式碼:
function doPost(e) {
var lineBot = new LineBot();
var replyToken = e.parameter.replyToken;
var messageText = e.parameter.messageText;
lineBot.replyMessage(replyToken, {
type: 'text',
text: 'Hello, this is a reply from GAS!'
});
}
你可以參考 line-bot-sdk-gas 的文件來了解更多細節和範例。
如何接收圖片並且轉成 base64?
在使用 Google Apps Script 和 line-bot-sdk-gas 時,如果你想接收 LINE 使用者傳來的圖片並將其轉換為 Base64 編碼,可以參考以下步驟:
步驟 1:接收圖片訊息
首先,當 LINE 使用者傳送圖片時,你可以在事件處理器中處理這個圖片訊息。你可以使用 getContent() 方法來取得圖片的二進位資料。
步驟 2:將圖片轉換為 Base64 編碼
使用 Google Apps Script 提供的內建方法 Utilities.base64Encode() 來將二進位圖片資料轉換為 Base64 格式。
範例程式碼
這裡提供一個簡單的範例,示範如何接收 LINE 傳來的圖片,並將其轉換為 Base64 字串:
function doPost(e) {
var json = JSON.parse(e.postData.contents);
var events = json.events;
events.forEach(function(event) {
// 檢查事件是否為圖片訊息
if (event.message.type === 'image') {
var messageId = event.message.id;
// 取得圖片內容 (二進位資料)
var imageBlob = getLineImage(messageId);
// 將圖片轉換為 Base64
var base64Image = Utilities.base64Encode(imageBlob.getBytes());
// 你可以將 Base64 字串儲存或傳回
Logger.log(base64Image);
}
});
}
// 取得圖片資料的輔助函式
function getLineImage(messageId) {
var lineBot = new LineBot(); // 初始化 line-bot-sdk-gas
// 使用 getMessageContent() 取得圖片內容
var imageResponse = lineBot.getMessageContent(messageId);
if (imageResponse) {
// 將取得的圖片內容轉換為 Blob 格式
var imageBlob = Utilities.newBlob(imageResponse.getBytes());
return imageBlob;
} else {
throw new Error('無法取得圖片');
}
}
解釋:
doPost函數:當 LINE 傳送圖片訊息到機器人時,這個函數會被觸發。它會解析事件,並檢查訊息是否為圖片。getLineImage函數:使用line-bot-sdk-gas的getMessageContent()方法取得圖片的內容,並將其轉換為Blob。- Base64 編碼:使用
Utilities.base64Encode()將 Blob 的二進位資料轉換為 Base64 格式。
後續處理:
你可以將 Base64 編碼的圖片字串儲存在 Google Sheets、Firebase,或傳送回 LINE 使用者,視應用場景需求而定。
Utilities.newBlob 在哪邊載入的?
Utilities.newBlob() 是 Google Apps Script 提供的內建工具函式,不需要額外載入或安裝。Utilities 是 Google Apps Script 的全局物件之一,內含許多常用的實用工具,包括字串編碼、哈希計算、時間處理等。
Utilities.newBlob() 用於建立一個新的 Blob 物件,Blob 是一個二進位大對象,常用來處理圖片、檔案等資料。
在你的 Google Apps Script 環境中,Utilities 是預設可用的,因此你可以直接在腳本中使用,如同下面範例:
var blob = Utilities.newBlob(byteArray, mimeType, fileName);
這裡的參數為:
byteArray:二進位資料,通常是一個位元組陣列(byte[])。mimeType:資料的 MIME 類型,例如image/jpeg、image/png。fileName(選填):檔案名稱,可以不提供。
這個函式會返回一個 Blob 物件,該物件可以進一步處理,例如上傳到 Google Drive、轉換為 Base64 編碼等。

留言板
歡迎留下建議與分享!希望一起交流!感恩!