自動傳出LINE訊息---利用python及txt檔

閱讀時間約 16 分鐘

1.    目的  

設計程式來讀取欲傳送訊息之參數txt檔案,再利用程式自動傳出訊息至LINE群組。使用者能簡易使用於任何場合。

 

2.    作業說明                                                  

       2.1   程式名稱:  LINE_send_notify.exe                                                     

       2.2 開發工具 : Python 3.8.3  [MSC v.1916 64 bit (AMD64)]。 

編輯工具 Spyder 4.1.4                                                              

       2.3   使用模組Module/套件 :                                                          

           import requests    #Line notify requests                                              

      from datetime import datetime                                                     

       2.4  讀取參數txt檔:

檔名 LINE_send_notify_par.txt, 內含 LINE Notify 所需之三要項,

即是 T , I , M  三個代碼,代碼功能如下: 

 T : token, 欲發送通知之LINE群組之字串權杖

 I : image ,欲附上圖片或 LINE icon貼圖之檔案儲存path     

 M: message,欲發送出去之訊息內容,可記入多行訊息

                                                    

         * 除了M 以外,相同的代碼若重複時,後面的代碼資料會取代面

    2.5  利用讀入之參數檔,讓本程式可多元彈性,靈活運用,

           參數檔需與程式檔案存置於同一資料夾內

                                                                  

3.  程式設計:

     3.1 程式編輯python coding

     3.2 程式測試:

         程式執行訊息傳送之結果,有可能出現訊息code如下            

         200: Success            

         400 Invalid image. Bad request 理由 : Token 有問題,或無            

         401: Invalid access token                 

         500: Failure due to server error              

 

              3.3 程式測試後,若成功無問題時,可將其編譯成執行檔

             python compile (compile to exe file)方法如下:

        ==>於Anaconda Powershell Prompt -->視窗下 以系統管理者帳號執行

                             

         ==>於Anaconda Powershell Prompt --> compile執行指令如下,

     執行後,若出現如下訊息,表示compile成功                               

       (base) PS C:\WINDOWS\system32> pyinstaller -F D:\.spyder-py3\linct\LINE_send_notify.py           

     …..                                                                                                          

       56678 INFO: Appending archive to EXE C:\WINDOWS\system32\dist\LINE_send_notify.exe        

56775 INFO: Building EXE from EXE-00.toc completed successfully.

(base) PS C:\WINDOWS\system32>   

                                                              

       4.  運用說明:                                                          

  4.1 欲自動推播訊息內容,記入LINE_send_notify_par.txt之文字內

         依使用者需求,自行輸入傳送訊息之內容。

參數txt檔,參考例如下:

M,

M,柴山生態班即將開班通知

M,一. 報名地點: 3月25日08:30 於海邊里活動中心

M,二. 課程費用: 600元, 介紹柴山生態共12週課程

M,

T,i----YOUR Token code---- 

 

     4.2 是否要傳出圖片,可有可無,使用者可自行決定

     4.3 將上述程式LINE_send_notify.exe,設計成一個bat檔案,讓它能依照排程,

於任意日期,任何時間,定期自動執行,執行後自動發出LINE訊息

     4.4  上述各檔案如exe ,txt, jpg 檔,需配置於同一資料夾內                 

   4.5執行後結果

        依照上述4.1參數txt檔實例,自動傳出訊息至LINE群組,如下圖示:

raw-image

                                                          

5.  將來構想:                                                          

           5.1 各業務定期報表,日報月報等,執行結果可自動發出訊息給擔當           ,非上班時間亦可及時自動傳出LINE訊息,讓各相關人員能夠掌握    業務運作狀況                            

          5.2  對每日或定期執行的程式或作業,一旦執行失敗或異常故障發生時,及時發出LINE之警告訊息,讓擔當可以盡快針對系統機器或程式資料,及時進行排除對應,避免事件擴大發生                                              

           5.3  定期作業之作業記錄檔,可供確認保存,做為稽核監查時,備查憑證資料,減少手工時間,提高作業效率                                              

           5.4 年度,月度,每季之定例計畫事項,或不定時計畫事件,可利用本程式,事先自動傳出LINE訊息,通知各相關人員,讓擔當可以事先及時準備對應,避免計畫事件被遺忘,或無法事先充分準備,而耽誤業務推進  

 

6.  程式內容:(python)

# -*- coding: utf-8 -*-
"""
Created on Wed Aug 6 18:35:38 2021

@author: KTMN0094 in 2021/8/8
"""
# import sys #Adding parameter
import requests #Line notify requests
from datetime import datetime

#d=str(datetime.now().strftime('%y/%m/%d %H:%M:%S'))
d=str(datetime.now().strftime('%Y/%m/%d %H:%M'))
#rem f=open (R'D:\Users\ktmn0094\.spyder-py3\linct\Subj_TO_Attach.txt','r',encoding='cp950')
f=open (R'LINE_send_notify_par.txt','r',encoding='cp950')
message = ' ' # 當無 M , 無message時 default = 空string
imagefile = ' ' # 當無 I , 無imagefile時 default = 空string
token = ' '

while True: # ----- 讀取input參數檔 'LINE_Notify_par.txt'
s=f.readline().replace('\n', '')
if not s: # 讀到最後EOF
break
else:
s=s.split(',')
s0=s[0]
s =s[1: ]
while (s0 == 'M'): # ----- 依據 參數 s0 值,做各項處理
s1_str =','.join(s) # list -> string then got contents string
message = message + s1_str +'\n'
break
while (s0 == 'I'): # ----- 依據 參數 s0 值,做各項處理
s1_str =','.join(s) # list -> string then got contents string
imagefile = s1_str
break
while (s0 == 'T'): # ----- 依據 參數 s0 值,做各項處理
s1_str =','.join(s) # list -> string then got contents string
token = s1_str
break
f.close()

if message == ' ':
message = message + '### None message ###' +'\n'
while (imagefile !=' '): # ------ 判斷圖片檔 是否存在?
import os
imagefile=imagefile.strip() # imagefile.strip() 前後之空白去除
if os.path.isfile(imagefile) != True:
message = message + '### ERROR--> imagefile is invalid ###' +'\n' + imagefile +'\n'
imagefile = ' '
break
message = message + '*** send on ' + d
#print ('M',message)
#print ('I',imagefile)
#print ('T',token)
##############注意image 無時 (token ,message ) , else (token ,message, imagefile )
def LINE_send_notify(token, message, imagefile=None, stickerPackageId=None, stickerId=None):
headers = {
"Authorization": "Bearer " + token
}
param = {'message': message}
if stickerPackageId and stickerId:
param['stickerPackageId'] = stickerPackageId
param['stickerId'] = stickerId
if imagefile != ' ':
image = {'imageFile': open(imagefile, 'rb')}
# print(image)
r = requests.post("https://notify-api.line.me/api/notify", headers=headers, params=param, files=image)
else:
# print("no image")
r = requests.post("https://notify-api.line.me/api/notify", headers=headers, params=param)
return r

res = LINE_send_notify(token, message, imagefile)

if res.status_code==200:
print("LINE訊息傳送成功 res=",res )
else:
print("LINE訊息傳送失敗 ! res=",res)
print (res.status_code,res.text)

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

54會員
119內容數
樂趣體驗紀錄,沙龍房間有歌唱,生活,科技
留言0
查看全部
發表第一個留言支持創作者!
linct的沙龍 的其他內容
欲傳送之內容,由使用者輸入於文字檔內,執行本執行檔後,指定之LINE群組全員,將會收到推播訊息
上回說明的手動下指令,傳出訊息。為了節省手動輸入之動作,將欲執行的curl指令內容,事先作成執行檔。當需要傳送訊息時,只要按兩下執行檔,便可立刻傳出訊息至LINE群組內之全員 2. 說明 2.1 因每次要傳送內容不同,將這些會變動的訊息資料,輸入後保存 於bat執行檔內
如何將LINE訊息自動傳出,利用curl工具
LINE 在台灣有許多人使用,是一天裡開啟次數最多的APP,是生活中最重要的社群平台。 但很多人不知道LINE官方有個免費推播訊息的服務LINE Notify
與電腦溝通之方法說明 不須使用任何程式軟體工具,能與電腦溝通,使用Command line執行後,將依自己設定之條件,直接將結果選出,提供後續運用
 程式開發,功能 :               本程式執行後,自動寄出email,寄出的內容可依照讀取的參數檔內容而決定
欲傳送之內容,由使用者輸入於文字檔內,執行本執行檔後,指定之LINE群組全員,將會收到推播訊息
上回說明的手動下指令,傳出訊息。為了節省手動輸入之動作,將欲執行的curl指令內容,事先作成執行檔。當需要傳送訊息時,只要按兩下執行檔,便可立刻傳出訊息至LINE群組內之全員 2. 說明 2.1 因每次要傳送內容不同,將這些會變動的訊息資料,輸入後保存 於bat執行檔內
如何將LINE訊息自動傳出,利用curl工具
LINE 在台灣有許多人使用,是一天裡開啟次數最多的APP,是生活中最重要的社群平台。 但很多人不知道LINE官方有個免費推播訊息的服務LINE Notify
與電腦溝通之方法說明 不須使用任何程式軟體工具,能與電腦溝通,使用Command line執行後,將依自己設定之條件,直接將結果選出,提供後續運用
 程式開發,功能 :               本程式執行後,自動寄出email,寄出的內容可依照讀取的參數檔內容而決定
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
張楠辭去抖音集團CEO一職,將專注於剪映業務。剪映是字節跳動的視頻剪輯軟件,面向抖音平臺用戶用於製作短視頻內容。文章探討了張楠的辭職原因,未來發展計劃,以及剪映軟件的最新動態。
Thumbnail
因應今(2024)年 Google Podcast 結束服務,原用戶收聽 Podcast 需轉移至 YouTube Music 或是 YouTube。 不過礙於流程上沒有很順利(原本去年就應該搬到 YouTube 上),所以作為 YouTube 新手,特別寫一篇文章來分享如何從 YouTube 後
Thumbnail
前言 上次我們教到如何使用 Gitlab CI/CD 自動打包 Docker Image,並自動上傳 Docker Image 到 Docker Hub 存放我們的 Image,今天我們要再做一件事情,也就是當我們上傳 Image 時,除的上傳自動最新 Image,還要自動掛載版號 jq 工具使
Thumbnail
去年阿財有分享過自動駕駛技術各個解決方案的路線選擇,當時我就有提到過我認為傳統車廠為什麼不走純視覺路線的可能原因,這邊再稍微分享一下: 首先在講純視覺之前先了解一下目前純視覺是如何計算深度的,目前用相機拍到的影像計算深度有單目視覺、雙目視覺、運動結構恢復(sfm)等再搭配AI模型,可以搜尋Pseud
Thumbnail
你是不是對於自傳和 Coverletter 傻傻分不清楚呢?心中總是有些疑問是:「有什麼差別?該怎麼寫比較好?寫那麼多面試官到底會不會看阿?」 好的自傳可以想像成就是「你個人的專屬廣告」,目的是獲得一個「面試的機會」! 如何撰寫一篇成功的自傳?
Thumbnail
學校的規定每天早上6點到十點,要到學校網站的體溫填報系統上傳當日體溫,如果超時未上傳會記警告,我覺得非常麻煩,於是我想用程式自動在體溫填報系統上傳體溫。 因為太多人使爬蟲上傳體溫,學校開始用驗證的方式阻擋網路爬蟲,於是我開始想辦法聽過驗正常序,讓網路爬蟲成功上傳體溫。
Thumbnail
I,CV 和 Resume 是一樣的內容嗎? 履歷 (Curriculum Vitae) 是拉丁語,意思是 "人生的歷程"。 相比之下,Resume (簡歷)在法語中是 "Summary"的意思。 CV(履歷)涵蓋了全部學經歷,還包括得獎、出版品、其他作品、社團會員等等,因此文件的長度較長; 相比之
Thumbnail
  不知道為什麼,《紫羅蘭永恆花園外傳-永遠與自動手記人偶》讓我想起國片《海角七號》。被耽擱許久的千言萬語,好不容易傳遞到最渴望的彼端時,那種穿山越嶺的執著,是兩部電影共同擁有的溫柔吧?  電影的劇情非常簡單,在龐大的世界觀之下講了一個很日常的故事。當一個人領略自己有療癒他人的能力時,自然願意敞開
Thumbnail
廢年每週固定發布上周的短評心得。《幸福的拉札洛》、《紫羅蘭永恆花園外傳 — 永遠與自動手記人偶 — 》
Thumbnail
世界上沒有哪封信,是不寄達也沒關係的,因為隱身其後的是濃烈的思念,透過自動手記人偶代為寫信,重繫那份失散多年相隔千里的至親情緣,也挖掘了關於愛與永恆的深刻意涵。 
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
張楠辭去抖音集團CEO一職,將專注於剪映業務。剪映是字節跳動的視頻剪輯軟件,面向抖音平臺用戶用於製作短視頻內容。文章探討了張楠的辭職原因,未來發展計劃,以及剪映軟件的最新動態。
Thumbnail
因應今(2024)年 Google Podcast 結束服務,原用戶收聽 Podcast 需轉移至 YouTube Music 或是 YouTube。 不過礙於流程上沒有很順利(原本去年就應該搬到 YouTube 上),所以作為 YouTube 新手,特別寫一篇文章來分享如何從 YouTube 後
Thumbnail
前言 上次我們教到如何使用 Gitlab CI/CD 自動打包 Docker Image,並自動上傳 Docker Image 到 Docker Hub 存放我們的 Image,今天我們要再做一件事情,也就是當我們上傳 Image 時,除的上傳自動最新 Image,還要自動掛載版號 jq 工具使
Thumbnail
去年阿財有分享過自動駕駛技術各個解決方案的路線選擇,當時我就有提到過我認為傳統車廠為什麼不走純視覺路線的可能原因,這邊再稍微分享一下: 首先在講純視覺之前先了解一下目前純視覺是如何計算深度的,目前用相機拍到的影像計算深度有單目視覺、雙目視覺、運動結構恢復(sfm)等再搭配AI模型,可以搜尋Pseud
Thumbnail
你是不是對於自傳和 Coverletter 傻傻分不清楚呢?心中總是有些疑問是:「有什麼差別?該怎麼寫比較好?寫那麼多面試官到底會不會看阿?」 好的自傳可以想像成就是「你個人的專屬廣告」,目的是獲得一個「面試的機會」! 如何撰寫一篇成功的自傳?
Thumbnail
學校的規定每天早上6點到十點,要到學校網站的體溫填報系統上傳當日體溫,如果超時未上傳會記警告,我覺得非常麻煩,於是我想用程式自動在體溫填報系統上傳體溫。 因為太多人使爬蟲上傳體溫,學校開始用驗證的方式阻擋網路爬蟲,於是我開始想辦法聽過驗正常序,讓網路爬蟲成功上傳體溫。
Thumbnail
I,CV 和 Resume 是一樣的內容嗎? 履歷 (Curriculum Vitae) 是拉丁語,意思是 "人生的歷程"。 相比之下,Resume (簡歷)在法語中是 "Summary"的意思。 CV(履歷)涵蓋了全部學經歷,還包括得獎、出版品、其他作品、社團會員等等,因此文件的長度較長; 相比之
Thumbnail
  不知道為什麼,《紫羅蘭永恆花園外傳-永遠與自動手記人偶》讓我想起國片《海角七號》。被耽擱許久的千言萬語,好不容易傳遞到最渴望的彼端時,那種穿山越嶺的執著,是兩部電影共同擁有的溫柔吧?  電影的劇情非常簡單,在龐大的世界觀之下講了一個很日常的故事。當一個人領略自己有療癒他人的能力時,自然願意敞開
Thumbnail
廢年每週固定發布上周的短評心得。《幸福的拉札洛》、《紫羅蘭永恆花園外傳 — 永遠與自動手記人偶 — 》
Thumbnail
世界上沒有哪封信,是不寄達也沒關係的,因為隱身其後的是濃烈的思念,透過自動手記人偶代為寫信,重繫那份失散多年相隔千里的至親情緣,也挖掘了關於愛與永恆的深刻意涵。