您好,登錄后才能下訂單哦!
如何使用Serverless+飛書打造你的個性化消息提醒系統,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
在日常工作學習生活中,我們可能會遇到以下情形:
自己管理的某臺服務器宕機了,但是沒有得到及時的提醒,導致業務受到損失
某些自己很想注冊的網站悄悄開放注冊,但是自己并沒有及時得知,于是只能繼續漫無目的的等待
……
如果每件事都花時間去關注,那我們的時間必然會不夠用,那有沒有什么辦法可以讓這些消息集中起來并且及時推送呢?在這里我想向大家推薦一個解決方案,那就是使用 Serverless + 飛書打造屬于自己的個性化消息提醒系統。
首先注冊一個飛書賬號,然后在飛書網頁版登錄
打開飛書開放平臺,點擊創建企業自建應用,并輸入應用名稱和應用副標題,然后點擊確定創建
在企業自建應用列表中點擊剛剛創建成功的應用,并記錄 App ID 和 App Secret
在本地新建一個項目目錄,名稱隨意,這里以 feishu-notify
為例
分別創建 3 個文件:.env
,index.py
和 serverless.yml
按如下說明進行編碼
TENCENT_SECRET_ID=AKID******************************** TENCENT_SECRET_KEY=********************************
注:這里的
TENCENT_SECRET_ID
和TENCENT_SECRET_KEY
可在騰訊云控制臺的訪問密鑰中獲取,如果沒有密鑰則需要自己新建一個
myFunction: component: "@serverless/tencent-scf" inputs: name: feishu-notify-py codeUri: "./" handler: index.main_handler runtime: Python3.6 region: ap-guangzhou description: My Serverless Function Used to Notify Myself memorySize: 128 events: - apigw: name: serverless parameters: protocols: - https endpoints: - path: "/" method: POST
注:可以點擊這里查看
serverless.yml
中所有可用屬性的屬性列表
def main_handler(event, context): import requests import json print(event) CONFIG = { "app_id": "********************", "app_secret": "********************************" } # my auth if 'myauth' not in event['queryString'] or event['queryString']['myauth'] != 'feishu1': return 'forbidden' # Get content postContent = event['body'] try: postContent = json.loads(postContent) except: return 'error in json_loads(line: 19)' if 'content' not in postContent: return 'invalid params' content = postContent['content'] # Get tenant_access_token try: res = requests.post('https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal/', { "app_id": CONFIG['app_id'], "app_secret": CONFIG['app_secret'] }) except: return 'error in get_tenant_access_token' data = json.loads(res.text) if data['code'] != 0: return data['msg'] token = data['tenant_access_token'] # Get chat_id try: res = requests.get('https://open.feishu.cn/open-apis/chat/v4/list', headers={ 'Authorization': 'Bearer %s' % (token) }) except: return 'error in get_chat_id' data = json.loads(res.text) if data['code'] != 0: return data['msg'] groupList = data['data']['groups'] myGroupId = groupList[0]['chat_id'] # Send message try: res = requests.post('https://open.feishu.cn/open-apis/message/v4/send/', json={ "chat_id": myGroupId, "msg_type": "text", "content": { "text": content } }, headers={ 'Authorization': 'Bearer %s' % (token), 'Content-Type': 'application/json' }) except: return 'error in send message' data = json.loads(res.text) if data['code'] != 0: return data['msg'] return 'success'
關于 index.py
,這里有幾點需要作出說明:
代碼中的 app_id
和 app_secret
項需填寫在準備工作記錄的 App ID 和 App Secret
最終我們使用 POST
方法發送消息
在調用時,我們還需要在 query
處加上 ?myauth=feishu1
,目的是作簡單驗證以防止他人發送,例如 https://service-********-**********.**.apigw.tencentcs.com/release/?myauth=feishu1
通過 npm 安裝 Serverless
$ npm install -g serverless
通過serverless
命令進行部署,并添加--debug
參數查看部署過程中的信息
$ serverless --debug
從終端獲取 API 網關的 URL
獲取 API 網關的 URL
回到飛書開放平臺,在企業自建應用列表中點擊剛剛創建成功的應用
點擊應用功能-機器人,點擊啟用機器人
點擊版本管理與發布-創建版本,參考下圖進行配置(先不要點保存)
在可用性狀態處點擊編輯,選擇所有員工,然后點擊保存
點擊申請發布
點擊飛書網頁版的頭像,進入飛書管理后臺
點擊工作臺-應用審核,然后點擊審核
點擊通過
請求方式: POST
請求地址: 上面獲取的 APIGateway 的 URL
請求 Header:
參數 | 類型 | 必填/選填 | 說明 | 默認值 | 實例 |
---|---|---|---|---|---|
Content-Type | string | 必填 | Content-Type | application/json |
請求 Query:
參數 | 類型 | 必填/選填 | 說明 | 默認值 | 實例 |
---|---|---|---|---|---|
myauth | string | 必填 | 簡單驗證 | feishu1 |
請求 Body:
{ "content": "這里填入你想要發送的信息" }
為了方便,這里使用 Chrome 瀏覽器插件 Talend API Tester 進行調用
可以看到,飛書的消息推送很及時
其實利用飛書能實現的并不只有這些而已,我相信聰明的你一定能開發出更加好玩的應用。
看完上述內容,你們掌握如何使用Serverless+飛書打造你的個性化消息提醒系統的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。