>  기사  >  위챗 애플릿  >  China Unicom WeChat 및 DingTalk 서비스

China Unicom WeChat 및 DingTalk 서비스

coldplay.xixi
coldplay.xixi앞으로
2020-08-31 17:39:593099검색

China Unicom WeChat 및 DingTalk 서비스

【관련 학습 추천: WeChat 공개 계정 개발 튜토리얼

WeChat과 DingTalk는 Tencent와 Alibaba의 두 진영에 속합니다. 장면?

오늘은 두 가지 오픈 소스 Golang SDK인 fastwego/offiaccountfastwego/dingding을 통해 시도해 보겠습니다. 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

전환 가능한 WeChat 공개 계정 구현 몇 초 만에 번역기로 서비스: 사용자가 보낸 중국어 텍스트를 프랑스어로 번역합니다. 🎜

WeChat 개방형 플랫폼 및 DingTalk 개방형 플랫폼

WeChat 공개 계정

🎜개발 모드를 활성화하고 사용자가 보낸 메시지를 이어받습니다: 🎜🎜🎜🎜동시에 WeChat 공식 계정의 appid/secret/token 구성 정보도 획득됩니다🎜

DingTalk 개방형 플랫폼

🎜회사 내부 H5 마이크로 애플리케이션을 열고 AI 인터페이스 승인을 완료하세요:🎜🎜🎜🎜동시에 DingTalk AppKey/AppSecret의 구성 정보도 가져옵니다🎜

번역 서비스 개발

🎜번역 서비스는 매우 간단합니다:🎜
  • WeChat 공개 계정 사용자가 보낸 텍스트 가져오기
  • DingTalk AI 번역 인터페이스를 호출하여 대상 언어로 변환
  • WeChat 공개 계정에 응답하고 번역 결과를 사용자에게 전송
🎜메인 코드: 🎜rrreee 실행 효과🎜🎜

결론

🎜지금까지 두 오픈소스에서는 fastwego/offiaccountfastwego/dingding의 Golang SDK의 도움으로 WeChat과 DingTalk 서비스를 연결하는 효과를 빠르게 실현했습니다. 🎜

위 내용은 China Unicom WeChat 및 DingTalk 서비스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제