你知道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 編碼等。
留言板
歡迎留下建議與分享!希望一起交流!感恩!