エンタープライズ アカウントは主に企業のニーズに合わせて設計されているため、内部メッセージの交換は非常に重要であり、特に大企業の場合、送受信されるメッセージの数はかなりの数になるはずであるため、内部メッセージの交換は非常に重要です。エンタープライズ アカウントと組み合わせて実現できます。エンタープライズ アカウントは、セキュリティと無制限のメッセージングに重点を置いているという特徴があり、企業の内部環境に非常に適しています。この記事では、エンタープライズ アカウントを使用して、テキスト、画像、ファイル、音声、ビデオ、グラフィック メッセージなどのメッセージを送信する方法を主に紹介します。
1. エンタープライズ アカウントの機能 エンタープライズ アカウントには次の機能があります: 1) フォローする方が安全です – エンタープライズ アドレス帳のメンバーのみがエンタープライズ アカウント、階層管理者、機密メッセージなどをフォローできます。特長 企業内部情報のセキュリティを確保します。 企業は、フォロワー ID の自己検証を設定し、二次セキュリティ検証を実施して、企業情報の使用と送信のセキュリティを確保できます。 従業員が退職した場合、企業管理者はアドレス帳からメンバーを削除でき、メンバーは自動的に企業アカウントのフォローを解除され、WeChat の企業アカウント履歴も消去されます。 2) アプリケーションの構成可能性 – 企業は、エンタープライズ アカウントで複数のサービス アカウントを構成でき、承認されたエンタープライズ メンバーのみが対応するサービス アカウントを使用できます。 3) 無制限のメッセージ – メッセージの送信に制限はなく、企業の複雑でパーソナライズされたアプリケーション シナリオに適応する完全な管理インターフェイスと WeChat ネイティブ機能を提供します。 企業は従業員に積極的にメッセージを送信できます。メッセージの数に制限はありません。
4) より使いやすくなりました – エンタープライズ アカウントには WeChat に統一されたメッセージ入口があり、ユーザーはエンタープライズ アカウントのメッセージをより便利に管理できます。 WeChat アドレス帳は、エンタープライズ アカウントのアプリケーションに直接アクセスすることもできます。 2. エンタープライズ アカウント管理インターフェイスのコンテンツ エンタープライズ アカウントの現在のコンテンツは、マテリアル管理、パッシブ応答メッセージ、アドレス帳管理、カスタム メニューなどを含む、以下の階層図を使用して表示できます。見つかりました。 以下の図を参照してください。 3. エンタープライズアカウントのメッセージとイベント処理 エンタープライズアカウントは、公式アカウントと同様に、メッセージ処理とイベント処理に分けられます。送信されるメッセージは、テキスト メッセージ、画像メッセージ、ファイル メッセージ、ビデオ メッセージ、音声メッセージ、地理的テキスト メッセージ、グラフィックおよびマルチメディア メッセージなどです。 イベント処理には、主にフォローイベントとフォロー解除イベント、メニュークリックタイプとビュータイプの操作、地理的位置レポートイベントなどが含まれます。 以下に2種類の処理図を示します。
4. エンタープライズアカウントのメッセージ管理 エンタープライズ管理のバックグラウンドでは、公式アカウントと同様に、以下に示すように、テキスト、写真、地理的位置などを含む、対応する情報交換記録を確認できます。 。
メッセージはテキスト、画像、ファイル、音声、ビデオ、ニュース、MpNewsなどを含むいくつかのタイプに分かれているため。
したがって、それらをそれぞれ定義してカプセル化する必要があります。以下はそれらの情報オブジェクトの設計図です。企業アカウントによって送信されるメッセージの正式な定義は次のとおりです: 企業は従業員に積極的にメッセージを送信できます。
メッセージの量に制限はありません
。インターフェースを呼び出すときは、HTTPS プロトコルと JSON データ パケット形式を使用します。データ パケットを暗号化する必要はありません
。現在、テキスト、画像、音声、ビデオ、ファイル、グラフィックス、その他のメッセージ タイプをサポートしています。ニュース タイプに加えて、機密性オプションを使用して他のタイプのメッセージを送信することもできます。機密メッセージには透かしが入れられ、受信者のみが読むことができます。
送信されたテキストメッセージを例に挙げます。その定義は次のとおりです。
テキストメッセージ
{ "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" }
パラメータ | 必須 | 説明 |
---|---|---|
ユーザー | いいえ | ユーザーIDリスト(メッセージ受信者、複数)受信者は '|' で区切られます)。特殊なケース: @all として指定すると、 |
toparty | No | PartyID リストがエンタープライズ アプリケーションをフォローしているすべてのメンバーに送信されます。複数の受信者は「|」で区切られます。 touser が @all |
totag | No | TagID リストの場合、このパラメータは無視され、複数の受信者は「|」で区切られます。 touser が @all の場合、このパラメーターは無視されます。 |
msgtype | は、 | メッセージ タイプであり、次のように固定されます。 text |
agentid | は、 | エンタープライズ アプリケーションの ID (整数)。アプリの設定ページで確認できます |
内容 | はい | メッセージ内容 |
安全 | いいえ | は機密メッセージかどうかを示し、0はいいえ、1ははいを意味します。デフォルトは 0 |
これらの各メッセージには、共通の属性である次のメッセージが含まれます:
touser": "UserID1|UserID2|UserID3", "toparty": " PartyID1 | PartyID2 ", "totag": " TagID1 | TagID2 ", "msgtype": "text", "agentid": "1",
したがって、これらの共通情報を便利に運ぶための基本クラスを定義できます。 。
/// <summary> /// 企业号发送消息的基础消息内容 /// </summary> public class CorpSendBase { /// <summary> /// UserID列表(消息接收者,多个接收者用‘|’分隔)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送 /// </summary> public string touser { get; set; } /// <summary> /// PartyID列表,多个接受者用‘|’分隔。当touser为@all时忽略本参数 /// </summary> public string toparty { get; set; } /// <summary> /// TagID列表,多个接受者用‘|’分隔。当touser为@all时忽略本参数 /// </summary> public string totag { get; set; } /// <summary> /// 消息类型 /// </summary> public string msgtype { get; set; } /// <summary> /// 企业应用的id,整型。可在应用的设置页面查看 /// </summary> public string agentid { get; set; } /// <summary> /// 表示是否是保密消息,0表示否,1表示是,默认0 /// </summary> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] public string safe { get; set; } }
次に、以下に示すように、他のメッセージはこの基本クラスを 1 つずつ継承できます。
は最終的に以下の継承図を形成します。
関連する送信オブジェクトを定義した後、以下に示すように、その統合された送信インターフェイスを定義できます。
/// <summary> /// 企业号消息管理接口定义 /// </summary> public interface ICorpMessageApi { /// <summary> /// 发送消息。 /// 需要管理员对应用有使用权限,对收件人touser、toparty、totag有查看权限,否则本次调用失败。 /// </summary> /// <param> /// <returns></returns> CommonResult SendMessage(string accessToken, CorpSendBase data); }
最後に、インターフェース定義に従ってテキストやその他のタイプのメッセージが実装されます。実装コードは次のとおりです。 送信プロセスでは、暗号化のために暗号化クラスを呼び出す必要がないことに注意してください。
/// <summary> /// 企业号消息管理实现类 /// </summary> public class CorpMessageApi : ICorpMessageApi { /// <summary> /// 发送消息。 /// 需要管理员对应用有使用权限,对收件人touser、toparty、totag有查看权限,否则本次调用失败。 /// </summary> /// <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(); //数据不用加密发送 CorpSendResult sendResult = CorpJsonHelper<corpsendresult>.ConvertJson(url, postData); if (sendResult != null) { result.Success = (sendResult.errcode == CorpReturnCode.请求成功); result.ErrorMessage = string.Format("invaliduser:{0},invalidparty:{1},invalidtag:{2}", sendResult.invaliduser, sendResult.invalidparty, sendResult.invalidtag); } return result; } }</corpsendresult>
private void btnSendText_Click(object sender, EventArgs e) { //发送文本内容 ICorpMessageApi bll = new CorpMessageApi(); CorpSendText text = new CorpSendText("API 中文测试(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("发送消息:{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)) { //发送图片内容 ICorpMessageApi bll = new CorpMessageApi(); CorpSendImage image = new CorpSendImage(image_mediaId); CommonResult result = bll.SendMessage(token, image); if (result != null) { Console.WriteLine("发送图片消息:{0} {1} {2}", image_mediaId, (result.Success ? "成功" : "失败"), result.ErrorMessage); } } }
WeChat ポータルの C# 開発および WeChat エンタープライズ アカウント メッセージング (テキスト、画像、ファイル、音声、ビデオ、グラフィック メッセージなど) のアプリケーションの詳細については、PHP 中国語 Web サイトにご注意ください。