溫馨提示×

溫馨提示×

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

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

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

發(fā)布時間:2020-02-14 11:10:16 來源:網(wǎng)絡(luò) 閱讀:341 作者:zzzhizhu 欄目:開發(fā)技術(shù)

消息通知需求
完成協(xié)作工作。

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

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

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

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

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

如果實在找不到合適的模板,就只能自己申請新的消息模板了,而申請模板又是一個考驗?zāi)托牡氖虑椋?br/>在蜘蛛表格中實現(xiàn)微信消息通知是這樣做到的

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

服務(wù)端接口開發(fā)
一切準備材料就緒,接下來就是開發(fā)過程了。

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

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

//配置微信參數(shù)

config := &wechat.Config{

AppID: “xxxx”,

AppSecret: “xxxx”,

Token: “xxxx”,

EncodingAESKey: “xxxx”,

Cache: cache.NewMemory(),

}

wc := wechat.NewWechat(config)

這里SDK已經(jīng)幫我們封裝處理了微信的簽名認證機制。所以我們發(fā)送模板消息可以直接調(diào)用SDK中template包的方法來構(gòu)建消息實例并發(fā)送出去:

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是消息模板對應(yīng)的變量參數(shù),類似這樣:

map[string]*(template.DataItem) {

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

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

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

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

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

},

}

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

在相應(yīng)的業(yè)務(wù)代碼中,調(diào)用sendWechatMessage函數(shù),就可以發(fā)送對應(yīng)業(yè)務(wù)的模板消息了。

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

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

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

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI