[関連する学習の推奨事項: WeChat パブリック アカウント開発チュートリアル ]
WeChat と DingTalk は Tencent と Alibaba の 2 つの陣営に属しますが、これらが相互接続できるようになると、どのような魔法のような光景が生まれるでしょうか?
今日は、2 つのオープンソース Golang SDK fastwego/offiaccount
と fastwego/dingding
を使って試してみます。
WeChat を実装するpublic Haomiaobian 翻訳者のサービス: ユーザーから送信された中国語のテキストをフランス語に翻訳します。
開発モードを有効にし、ユーザーが送信したメッセージを引き継ぐ:
#同時に、WeChat 公式アカウントの appid/secret/token 設定情報も取得されます
企業の内部 H5 マイクロ アプリケーションを開き、AI インターフェイスの認証を完了します:
同時に、構成情報DingTalk の AppKey/AppSecret も取得されます
翻訳サービスは非常に簡単です:
// 微信公众账号var OffiAccount *offiaccount.OffiAccount// 钉钉 App 实例var DingApp *dingding.Appfunc init() { // 加载配置文件 viper.SetConfigFile(".env") _ = viper.ReadInConfig() // 创建公众号实例 OffiAccount = offiaccount.New(offiaccount.Config{ Appid: viper.GetString("APPID"), Secret: viper.GetString("SECRET"), }) // 创建钉钉应用实例 DingApp = dingding.NewApp(dingding.AppConfig{ AppKey: viper.GetString("AppKey"), AppSecret: viper.GetString("AppSecret"), })}func HandleMessage(c *gin.Context) { // 获取公众号消息 body, _ := ioutil.ReadAll(c.Request.Body) log.Println(string(body)) message, err := OffiAccount.Server.ParseXML(body) if err != nil { log.Println(err) } var output interface{} switch message.(type) { case type_message.MessageText: // 文本 消息 msg := message.(type_message.MessageText) // 调用 钉钉 翻译服务 params := struct { Query string `json:"query"` TargetLanguage string `json:"target_language"` SourceLanguage string `json:"source_language"` }{} params.Query = msg.Content params.SourceLanguage = "zh" params.TargetLanguage = "fr" data, err := json.Marshal(params) if err != nil { fmt.Println(string(data), err) return } // 翻译接口 resp, err := ai.Translate(DingApp, data) fmt.Println(string(resp), err) if err != nil { return } // 翻译结果 result := struct { Errcode int64 `json:"errcode"` Errmsg string `json:"errmsg"` Result string `json:"result"` }{} err = json.Unmarshal(resp, &result) fmt.Println(result, err) if err != nil { return } // 回复公众号 翻译结果文本消息 output = type_message.ReplyMessageText{ ReplyMessage: type_message.ReplyMessage{ ToUserName: type_message.CDATA(msg.FromUserName), FromUserName: type_message.CDATA(msg.ToUserName), CreateTime: strconv.FormatInt(time.Now().Unix(), 10), MsgType: type_message.ReplyMsgTypeText, }, Content: type_message.CDATA(result.Result), } } OffiAccount.Server.Response(c.Writer, c.Request, output)}
##結論
の間 2 つのオープンソース Golang SDK の助けを借りて、私たちは WeChat と DingTalk サービスを接続する効果をすぐに実感しました。
以上がチャイナユニコムのWeChatおよびDingTalkサービスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。