联通微信和钉钉服务
【相关学习推荐:微信公众号开发教程】
微信 和 钉钉,分属于 腾讯 和 阿里巴巴 两大阵营,当他们之间可以互联互通,会是一种怎样神奇的场景?
今天,我们就通过 fastwego/offiaccount 和 fastwego/dingding 这两个开源 Golang SDK 试一试:
实现一个微信公众号秒变翻译机的服务:将用户发送过来的中文文本,翻译成法语。微信开放平台 & 钉钉开放平台微信公众号开启开发模式,接管用户发送的消息:
同时,还将获取到微信公众号的 appid/secret/token 配置信息钉钉开放平台开通企业内部 H5 微应用并完成 AI 接口授权:
同时还将获取的钉钉 AppKey/AppSecret 的配置信息翻译服务开发翻译服务非常简单:获取微信公众号用户发送的文本调用钉钉 AI 翻译接口,转换为目标语言响应微信公众号,将翻译结果发送给用户主要代码:// 微信公众账号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 {Querystring `json:"query"`TargetLanguage string `json:"target_language"`SourceLanguage string `json:"source_language"`}{}params.Query = msg.Contentparams.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"`Errmsgstring `json:"errmsg"`Resultstring `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)}运行效果结语至此,在fastwego/offiaccount 和 fastwego/dingding 这两个开源 Golang SDK 的辅助下,我们快速实现了微信 和 钉钉 服务打通的效果。以上就是联通微信和钉钉服务的详细内容,更多请关注小潘博客其它相关文章!