联通微信和钉钉服务

广告:宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取~~~

联通微信和钉钉服务

【相关学习推荐:微信公众号开发教程】

微信 和 钉钉,分属于 腾讯 和 阿里巴巴 两大阵营,当他们之间可以互联互通,会是一种怎样神奇的场景?

今天,我们就通过 fastwego/offiaccountfastwego/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 {            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)}
登录后复制运行效果

结语

至此,在fastwego/offiaccountfastwego/dingding 这两个开源 Golang SDK 的辅助下,我们快速实现了微信 和 钉钉 服务打通的效果。

以上就是联通微信和钉钉服务的详细内容,更多请关注9543建站博客其它相关文章!

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。
作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:yii怎么设置默认访问首页
下一篇:深入解析Bootstrap中的下拉列表select

发表评论

关闭广告
关闭广告