溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在蜘蛛表格中實現微信消息通知是這樣做到的

發布時間:2020-02-14 11:10:16 來源:網絡 閱讀:382 作者:zzzhizhu 欄目:開發技術

消息通知需求
完成協作工作。

在很多應用中,各種方式的消息通知是必不可少的功能之一,蜘蛛表格也不例外,涉及消息推送通知的地方很多,總結起來有以下幾處:

向管理員用戶發送其組織內的重要通知,比如人員被邀請注冊、企業賬戶需要升級或續費等這些系統消息。
用戶注冊、重置密碼時的通知。
當組織內的用戶 A 向用戶 B 共享了一份數據之后,需要通知用戶 B。
用戶可以主動訂閱某條數據的評論信息,如果主動訂閱,當這條數據有任何人評論了新的內容時,會通知到訂閱的用戶。
用戶 A 可以在數據記錄中以及針對數據的評論中@用戶 B,此時用戶 B 會收到通知消息。
用戶 A 將某條數據記錄的協作者指定為用戶 B 時,可以通知用戶 B 會收到協作的通知消息。
所在組織的各種用量(比如附件空間大小、剩余郵件封數)即將用盡或已經用盡時,需要通知組織管理員。
工作流通知。用戶可以根據數據自由設定條件(比如數據記錄發生變化、有人提交了新的數據、或是到達了某個事件點),當達到這個條件時執行其設定的操作,而“消息通知”是可以設定的操作之一。
蜘蛛表格中的數據字段都是用戶自主定制的,工作流程觸發條件和操作也是用戶自主定制,非常靈活。蜘蛛表格在很早之前就已經實現了電子郵件通知以及應用內部的站內信通知,結合國內的互聯網環境,很多用戶希望能接入微信通知,于是就有了這篇記錄實現過程的文章。

開始之前的準備
一個已認證的服務號
模板消息功能默認是沒有開放的,需要自行在功能->添加功能插件處申請,只有已認證的服務號才能成功申請到模板消息的使用權限。

公網可以訪問的服務器
模板消息功能需要公眾號啟用開發模式,在公眾號后臺的開發-基本設置頁面,勾選協議成為開發者,點擊“修改配置”按鈕,填寫服務器地址(URL)、Token 和 EncodingAESKey,其中 URL 是開發者用來接收微信消息和事件的接口 URL。

足夠的耐心,申請或在模板庫中尋找適合你的消息模板。
開通了模板消息的功能之后,還需要添加消息模板才能使用,首先需要設置好行業,才能查看所選行業分類下的所有公共消息模板,這里要吐槽一下微信,1000 多頁夾雜著已失效模板的列表只能一個一個點開去看,要找到合適的模板只能嘗試用關鍵字去搜索。
在蜘蛛表格中實現微信消息通知是這樣做到的

如果實在找不到合適的模板,就只能自己申請新的消息模板了,而申請模板又是一個考驗耐心的事情:
在蜘蛛表格中實現微信消息通知是這樣做到的

可以看到,蜘蛛表格工作流通知的模板消息,從第一次申請消息模板到最終審核通過,經歷了三次修改,歷時足有一個月之多。

服務端接口開發
一切準備材料就緒,接下來就是開發過程了。

蜘蛛表格的后端使用 golang 語言開發,這里使用了第三方的 WeChat SDK for Go( 項目地址)。

首先需要配置微信公共賬號的 AppID,AppSecret,Token 以及EncodingAESKey信息:

//配置微信參數

config := &wechat.Config{

AppID: “xxxx”,

AppSecret: “xxxx”,

Token: “xxxx”,

EncodingAESKey: “xxxx”,

Cache: cache.NewMemory(),

}

wc := wechat.NewWechat(config)

這里SDK已經幫我們封裝處理了微信的簽名認證機制。所以我們發送模板消息可以直接調用SDK中template包的方法來構建消息實例并發送出去:

func sendWechatMessage(userOpenID, tplID, tplArgs, link) {

wechatMessage := &template.Message{

ToUser:     userOpenID,   // 接收這條模板消息的用戶OpenID

TemplateID: tplID,       // 這里填寫消息模板的ID

URL:        link,

Data:       tplArgs,

}

tplInstance := template.NewTemplate(wechat.Wechat.Context)

msgID, err := tplInstance.Send(wechatMessage)

if err != nil {

glog.Errorf(“error with template msgid: %v, %v”, msgID, err)

}

}

其中,tplArgs是消息模板對應的變量參數,類似這樣:

map[string]*(template.DataItem) {

  “first”:    {Value: “你好,李惠中,有一條你訂閱的工作流已被執行?!眪,

  “keyword1”: {Value: “【面試評價】工作表中有一條記錄等待更新”},

  “keyword2”: {Value: “薛明超”},

  “keyword3”: {Value: “2019年11月21日 14:36”},

  “remark”:   {Value: “點擊進入「蜘蛛表格」平臺,進一步查看信息”},

},

}

如果需要跳轉小程序,還可以傳入”miniprogram”參數,具體用法可以參考官方文檔。

在相應的業務代碼中,調用sendWechatMessage函數,就可以發送對應業務的模板消息了。

在開發過程中,可以申請一個微信測試號進行調試,調試完成后再上線到生產環境。注意測試號可以隨意添加模板,而真正的生產環境賬號的模板是在模板庫中選擇或申請的。

效果演示
在蜘蛛表格中實現微信消息通知是這樣做到的

用戶通過掃碼綁定微信賬號后,就可以收到蜘蛛表格的工作流通知了,用戶點擊后可以打開記錄數據的詳情,非常方便。當然,綁定微信賬號的過程不在這篇文章的討論范圍,有機會我可以單獨再寫一篇文章。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女