本篇內(nèi)容主要講解“C#怎么微信企業(yè)號(hào)的消息發(fā)送功能”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“C#怎么微信企業(yè)號(hào)的消息發(fā)送功能”吧!
成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)介紹好的網(wǎng)站是理念、設(shè)計(jì)和技術(shù)的結(jié)合。創(chuàng)新互聯(lián)建站擁有的網(wǎng)站設(shè)計(jì)理念、多方位的設(shè)計(jì)風(fēng)格、經(jīng)驗(yàn)豐富的設(shè)計(jì)團(tuán)隊(duì)。提供PC端+手機(jī)端網(wǎng)站建設(shè),用營(yíng)銷思維進(jìn)行網(wǎng)站設(shè)計(jì)、采用先進(jìn)技術(shù)開源代碼、注重用戶體驗(yàn)與SEO基礎(chǔ),將技術(shù)與創(chuàng)意整合到網(wǎng)站之中,以契合客戶的方式做到創(chuàng)意性的視覺化效果。對(duì)于企業(yè)號(hào),有以下一些特點(diǎn):
1)關(guān)注更安全
–只有企業(yè)通訊錄的成員才能關(guān)注企業(yè)號(hào),分級(jí)管理員、保密消息等各種特性確保企業(yè)內(nèi)部信息的安全。
企業(yè)可以設(shè)置自行驗(yàn)證關(guān)注者身份,進(jìn)行二次安全驗(yàn)證,保證企業(yè)信息使用和傳遞安全。
若員工離職,企業(yè)管理員可在通訊錄中刪除該成員,該成員即自動(dòng)取消關(guān)注企業(yè)號(hào),同時(shí)微信中的企業(yè)號(hào)歷史記錄也會(huì)被清除。
2)應(yīng)用可配置
–企業(yè)可自行在企業(yè)號(hào)中可配置多個(gè)服務(wù)號(hào),可以連接不同的企業(yè)應(yīng)用系統(tǒng),只有授權(quán)的企業(yè)成員才能使用相應(yīng)的服務(wù)號(hào)。
3)消息無(wú)限制
–發(fā)送消息無(wú)限制,并提供完善的的管理接口及微信原生能力,以適應(yīng)企業(yè)復(fù)雜、個(gè)性化的應(yīng)用場(chǎng)景。
企業(yè)可以主動(dòng)發(fā)消息給員工,消息量不受限制。
4)使用更便捷
–企業(yè)號(hào)在微信中有統(tǒng)一的消息入口,用戶可以更方便地管理企業(yè)號(hào)消息。微信通訊錄也可以直接訪問企業(yè)號(hào)中的應(yīng)用。
目前企業(yè)號(hào)的內(nèi)容可以用下面的分層圖來(lái)展示,分別包含素材管理、被動(dòng)響應(yīng)消息、通訊錄管理、自定義菜單等內(nèi)容,詳細(xì)可以看下面圖示。
企業(yè)號(hào)和公眾號(hào)一樣,可以分為消息處理和事件處理,下面是他們兩種類型的處理操作,也就發(fā)送的消息有文本消息、圖片消息、文件消息、視頻消息、語(yǔ)音消息、地理文字消息、圖文和多媒體消息等。
事件處理主要就是關(guān)注、取消關(guān)注事件,以及菜單click類型和view類型兩種操作,還有就是地理位置上報(bào)事件等。
兩種類型的處理圖如下所示。
在企業(yè)的管理后臺(tái),和公眾號(hào)一樣,可以看到對(duì)應(yīng)信息交流記錄,包括文字、圖片、地理位置等等,如下所示。
由于消息分為幾種類型,包括文本(Text)、圖片(Image)、文件(File)、語(yǔ)音(Voice)、視頻(Video)、圖文消息等(News)、MpNews等。
因此我們需要分別對(duì)它們進(jìn)行一定的定義和封裝處理,如下是它們的信息對(duì)象設(shè)計(jì)圖。
企業(yè)號(hào)發(fā)送消息的官方定義如下:
企業(yè)可以主動(dòng)發(fā)消息給員工,消息量不受限制。
調(diào)用接口時(shí),使用Https協(xié)議、JSON數(shù)據(jù)包格式,數(shù)據(jù)包不需做加密處理。
目前支持文本、圖片、語(yǔ)音、視頻、文件、圖文等消息類型。除了news類型,其它類型的消息可在發(fā)送時(shí)加上保密選項(xiàng),保密消息會(huì)被打上水印,并且只有接收者才能閱讀。
我們以發(fā)送的文本消息為例進(jìn)行說(shuō)明,它的定義如下所示。
text消息
{ "touser": "UserID1|UserID2|UserID3", "toparty": " PartyID1 | PartyID2 ", "totag": " TagID1 | TagID2 ", "msgtype": "text", "agentid": "1", "text": { "content": "Holiday Request For Pony(http://www.php.cn/)" }, "safe":"0" }
參數(shù) | 必須 | 說(shuō)明 |
---|---|---|
touser | 否 | UserID列表(消息接收者,多個(gè)接收者用‘|’分隔)。特殊情況:指定為@all,則向關(guān)注該企業(yè)應(yīng)用的全部成員發(fā)送 |
toparty | 否 | PartyID列表,多個(gè)接受者用‘|’分隔。當(dāng)touser為@all時(shí)忽略本參數(shù) |
totag | 否 | TagID列表,多個(gè)接受者用‘|’分隔。當(dāng)touser為@all時(shí)忽略本參數(shù) |
msgtype | 是 | 消息類型,此時(shí)固定為:text |
agentid | 是 | 企業(yè)應(yīng)用的id,整型??稍趹?yīng)用的設(shè)置頁(yè)面查看 |
content | 是 | 消息內(nèi)容 |
safe | 否 | 表示是否是保密消息,0表示否,1表示是,默認(rèn)0 |
其中每種消息都會(huì)包含以下消息所示,也就是它們共同的屬性:
touser": "UserID1|UserID2|UserID3", "toparty": " PartyID1 | PartyID2 ", "totag": " TagID1 | TagID2 ", "msgtype": "text", "agentid": "1",
因此我們可以定義一個(gè)基類用來(lái)方便承載這些共同的信息。
/// <summary> /// 企業(yè)號(hào)發(fā)送消息的基礎(chǔ)消息內(nèi)容 /// </summary> public class CorpSendBase { /// <summary> /// UserID列表(消息接收者,多個(gè)接收者用‘|’分隔)。特殊情況:指定為@all,則向關(guān)注該企業(yè)應(yīng)用的全部成員發(fā)送 /// </summary> public string touser { get; set; } /// <summary> /// PartyID列表,多個(gè)接受者用‘|’分隔。當(dāng)touser為@all時(shí)忽略本參數(shù) /// </summary> public string toparty { get; set; } /// <summary> /// TagID列表,多個(gè)接受者用‘|’分隔。當(dāng)touser為@all時(shí)忽略本參數(shù) /// </summary> public string totag { get; set; } /// <summary> /// 消息類型 /// </summary> public string msgtype { get; set; } /// <summary> /// 企業(yè)應(yīng)用的id,整型??稍趹?yīng)用的設(shè)置頁(yè)面查看 /// </summary> public string agentid { get; set; } /// <summary> /// 表示是否是保密消息,0表示否,1表示是,默認(rèn)0 /// </summary> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] public string safe { get; set; } }
然后其他消息逐一繼承這個(gè)基類即可,如下所示。
最終會(huì)構(gòu)成下面這個(gè)繼承關(guān)系圖。
定義好相關(guān)的發(fā)送對(duì)象后,我們就可以定義它的統(tǒng)一發(fā)送接口了,如下所示。
/// <summary> /// 企業(yè)號(hào)消息管理接口定義 /// </summary> public interface ICorpMessageApi { /// <summary> /// 發(fā)送消息。 /// 需要管理員對(duì)應(yīng)用有使用權(quán)限,對(duì)收件人touser、toparty、totag有查看權(quán)限,否則本次調(diào)用失敗。 /// </summary> /// <param name="accessToken"></param> /// <returns></returns> CommonResult SendMessage(string accessToken, CorpSendBase data); }
最終,文本等類型的消息會(huì)根據(jù)接口定義進(jìn)行實(shí)現(xiàn),實(shí)現(xiàn)代碼如下所示。注意,發(fā)送過程不需要調(diào)用加密類進(jìn)行加密。
/// <summary> /// 企業(yè)號(hào)消息管理實(shí)現(xiàn)類 /// </summary> public class CorpMessageApi : ICorpMessageApi { /// <summary> /// 發(fā)送消息。 /// 需要管理員對(duì)應(yīng)用有使用權(quán)限,對(duì)收件人touser、toparty、totag有查看權(quán)限,否則本次調(diào)用失敗。 /// </summary> /// <param name="accessToken"></param> /// <returns></returns> public CommonResult SendMessage(string accessToken, CorpSendBase data) { CommonResult result = new CommonResult(); string urlFormat = "http://www.php.cn/{0}"; var url = string.Format(urlFormat, accessToken); var postData = data.ToJson(); //數(shù)據(jù)不用加密發(fā)送 CorpSendResult sendResult = CorpJsonHelper<CorpSendResult>.ConvertJson(url, postData); if (sendResult != null) { result.Success = (sendResult.errcode == CorpReturnCode.請(qǐng)求成功); result.ErrorMessage = string.Format("invaliduser:{0},invalidparty:{1},invalidtag:{2}", sendResult.invaliduser, sendResult.invalidparty, sendResult.invalidtag); } return result; } }
定義好相應(yīng)的發(fā)送對(duì)象后,我們就可以進(jìn)行統(tǒng)一的消息發(fā)送操作,包括文本、圖片、文件、語(yǔ)音等等類型的消息,注意有些消息是需要上傳到服務(wù)器上,然后在根據(jù)mediaId進(jìn)行發(fā)送出去的。
發(fā)送文本和圖片的操作代碼如下所示。
private void btnSendText_Click(object sender, EventArgs e) { //發(fā)送文本內(nèi)容 ICorpMessageApi bll = new CorpMessageApi(); CorpSendText text = new CorpSendText("API 中文測(cè)試(http://www.php.cn/)"); text.touser = "wuhuacong"; text.toparty = "4";//部門ID text.totag = "0"; text.safe = "0"; text.agentid = "0"; CommonResult result = bll.SendMessage(token, text); if (result != null) { Console.WriteLine("發(fā)送消息:{0} {1} {2}", text.text.content, (result.Success ? "成功" : "失敗"), result.ErrorMessage); } } private void btnSendImage_Click(object sender, EventArgs e) { btnUpload_Click(sender, e); if (!string.IsNullOrEmpty(image_mediaId)) { //發(fā)送圖片內(nèi)容 ICorpMessageApi bll = new CorpMessageApi(); CorpSendImage image = new CorpSendImage(image_mediaId); CommonResult result = bll.SendMessage(token, image); if (result != null) { Console.WriteLine("發(fā)送圖片消息:{0} {1} {2}", image_mediaId, (result.Success ? "成功" : "失敗"), result.ErrorMessage); } } }
到此,相信大家對(duì)“C#怎么微信企業(yè)號(hào)的消息發(fā)送功能”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
本文名稱:C#怎么微信企業(yè)號(hào)的消息發(fā)送功能-創(chuàng)新互聯(lián)
文章URL:http://bm7419.com/article48/dpcdep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、外貿(mào)網(wǎng)站建設(shè)、搜索引擎優(yōu)化、網(wǎng)站策劃、自適應(yīng)網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容