2024-02-22|閱讀時間 ‧ 約 26 分鐘

免費推播LINE訊息---利用curl,bat及txt檔

1.      目的  

本回說明的方法,比上兩回的方法,更方便,更具彈性,使用者可以輕易上手使用LINE訊息推播

 

2.      作業說明  

2.1    使用者作業

使用者將欲傳送資料,包括 (1) 訊息內容,(2) 圖片路徑,(3)群組之權杖,三項資料,於電腦記事本內輸入,當欲傳送訊息時,執行本方法之執行檔後,即可傳出訊息至LINE群組。

使用者可依不同目的需求,自行修改更新文字檔內容。

2.2    執行檔作業

本執行檔其功能是負責取得使用者於文字檔內輸入的三項資料,再將其資料傳至LINE官網,讓LINE Notify 傳出訊息至LINE群組。

 

3.      處理概要

3.1 使用者於文字檔內,輸入相關資料含三個參數M,I,T 如下說明

 M---欲傳送的訊息內容,可多筆輸入

 I---欲傳送圖片的路徑,只能輸入1筆。若不傳圖片,不必輸入

 T---要接收訊息之群組所代表之權杖(token),需事先取得,可依不同群組,申請個別的權杖

3.2 執行檔之設計

  (1) 讀取文字檔內三個參數,針對參數中之訊息內容與圖片路徑做特別處理

  (2) 將讀取所得的參數,配置於工具程式curl的命令中,讓訊息內容可以主動推播給所指定的LINE群組

  (3) 本執行檔測試成功後,以後每次傳送時,異動之參數資料由使用者輸入於文字檔內後,直接執行本執行檔,不用再修改。

 

4.      案例演練

4.1假設內容:

某團體之旅遊計畫,欲事先通知LINE群組全員,並附上一張說明圖檔

 

4.2 準備txt文字檔內容如下:

M:鹽田國小志工隊 113年度旅遊通知   

M:地點:清境農場、日月潭  3/24-25  兩天一夜   

M:詳細參考記事本,請踴躍參加

I: C:\Users\linct\OneDrive\圖片\螢幕擷取畫面\travel.png

T:iEPX-------targeted token-----q3DuxNuFXOgoWRPQqEal

 

4.3 於Windows cmd 環境設計本方法之執行檔,執行檔與文字檔兩個檔案存放於同一目錄內

 

4.4 使用者如何執行?

   (1)不定期執行

     使用者於電腦手動滑鼠左鍵按兩下本執行檔,便可執行。

   (2) 預約執行,定期執行或週期性循環執行

       於Windows 工作排程器內設定,讓本執行檔,依排程自動執行,便可以達到LINE自動推播訊息之功能

 

4.5 執行檔被執行後,指定之LINE群組全員,將會收到推播訊息

本實例收到LINE訊息如下:


5. 設計內容

   5.1 欲傳送資料之文字檔,檔名: LINE_curl_par.txt,

      內容依需求,每次傳送前確認

 

   5.2 執行檔檔名: LINE_curl_FORf.bat,

      經幾次測試與修改,如下bat檔執行後,可以成功傳出LINE訊息

 

   執行檔設計如下:

echo off
REM --- this bat is for posting data to LINE URL   
D:
cd D:\lin_PC\cmd-bat\bat\LINE_Notify\curl\
set VarM=
set VarI=" "
set VarT=

if NOT exist "LINE_curl_par.txt" echo ###ERROR para file not exist & goto EOJ

rem **Step 1 --- Read par.txt file only include M I T ; by FOR /F
For /f "tokens=1* delims=:" %%A in ('findstr "M: I: T:" "LINE_curl_par.txt" ') do (CALL :Get3Var %%A "%%B")

:: 當無圖片時,VarI=空白,否則 VarI=@圖片路徑
if NOT %VarI%==" " (set VarI=@%VarI%
) else (set VarI= )

rem **Step 2 --- After getting par data to upload LINE URL; by curl
curl -H "Authorization: Bearer %VarT%" -F "message=%VarM% ---Send on %DATE%" -F "imageFile=%VarI%" https://notify-api.line.me/api/notify

:EOJ
exit

:Get3Var
rem --- %2 因 帶空白值 " x x ",故須先去掉頭尾之 "
set Var=%2
set Var=%Var:~1,-1%

rem --- 取得三個引數值 即varM varI varT
if %1==M (
set VarM=%VarM%%Var%
) else (
if %1==I (
set VarI=%Var%
) else (
if %1==T (
set VarT=%Var%
) else ( echo ###ERROR para data not M:,I:,T: )))

exit /b

----------------recorded by linct----------------------


 


分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.