打通微信和釘釘服務是一種怎樣的體驗?

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"微信 和 釘釘,分屬於 騰訊 和 阿里巴巴 兩大陣營,當他們之間可以互聯互通,會是一種怎樣神奇的場景?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"今天,我們就通過 "},{"type":"codeinline","content":[{"type":"text","text":"fastwego/offiaccount"}]},{"type":"text","text":" 和 "},{"type":"codeinline","content":[{"type":"text","text":"fastwego/dingding"}]},{"type":"text","text":" 這兩個開源 Golang SDK 試一試:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"實現一個微信公衆號秒變翻譯機的服務:將用戶發送過來的中文文本,翻譯成法語。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"微信開放平臺 & 釘釘開放平臺"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"微信公衆號"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"開啓開發模式,接管用戶發送的消息:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/7b/7b758ae921d0d2e4e70f363106bd2239.png","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"同時,還將獲取到微信公衆號的 appid/secret/token 配置信息"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"釘釘開放平臺"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"開通企業內部 H5 微應用並完成 AI 接口授權:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/ef/ef4bd9e05c12158ad2c8f772e3b7f4e8.png","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"同時還將獲取的釘釘 AppKey/AppSecret 的配置信息"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"翻譯服務開發"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"翻譯服務非常簡單:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"獲取微信公衆號用戶發送的文本"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"調用釘釘 AI 翻譯接口,轉換爲目標語言"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"響應微信公衆號,將翻譯結果發送給用戶"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"主要代碼:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"codeblock","attrs":{"lang":"go"},"content":[{"type":"text","text":"// 微信公衆賬號\nvar OffiAccount *offiaccount.OffiAccount\n\n// 釘釘 App 實例\nvar DingApp *dingding.App\n\nfunc init() {\n\t// 加載配置文件\n\tviper.SetConfigFile(\".env\")\n\t_ = viper.ReadInConfig()\n\n\t// 創建公衆號實例\n\tOffiAccount = offiaccount.New(offiaccount.Config{\n\t\tAppid: viper.GetString(\"APPID\"),\n\t\tSecret: viper.GetString(\"SECRET\"),\n\t})\n\n\t// 創建釘釘應用實例\n\tDingApp = dingding.NewApp(dingding.AppConfig{\n\t\tAppKey: viper.GetString(\"AppKey\"),\n\t\tAppSecret: viper.GetString(\"AppSecret\"),\n\t})\n}\n\nfunc HandleMessage(c *gin.Context) {\n\n\t// 獲取公衆號消息\n\tbody, _ := ioutil.ReadAll(c.Request.Body)\n\tlog.Println(string(body))\n\n\tmessage, err := OffiAccount.Server.ParseXML(body)\n\tif err != nil {\n\t\tlog.Println(err)\n\t}\n\n\tvar output interface{}\n\tswitch message.(type) {\n\tcase type_message.MessageText: // 文本 消息\n\t\tmsg := message.(type_message.MessageText)\n\n\t\t// 調用 釘釘 翻譯服務\n\t\tparams := struct {\n\t\t\tQuery string `json:\"query\"`\n\t\t\tTargetLanguage string `json:\"target_language\"`\n\t\t\tSourceLanguage string `json:\"source_language\"`\n\t\t}{}\n\n\t\tparams.Query = msg.Content\n\t\tparams.SourceLanguage = \"zh\"\n\t\tparams.TargetLanguage = \"fr\"\n\n\t\tdata, err := json.Marshal(params)\n\t\tif err != nil {\n\t\t\tfmt.Println(string(data), err)\n\t\t\treturn\n\t\t}\n\n\t\t// 翻譯接口\n\t\tresp, err := ai.Translate(DingApp, data)\n\t\tfmt.Println(string(resp), err)\n\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\n\t\t// 翻譯結果\n\t\tresult := struct {\n\t\t\tErrcode int64 `json:\"errcode\"`\n\t\t\tErrmsg string `json:\"errmsg\"`\n\t\t\tResult string `json:\"result\"`\n\t\t}{}\n\t\terr = json.Unmarshal(resp, &result)\n\t\tfmt.Println(result, err)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\n\t\t// 回覆公衆號 翻譯結果文本消息\n\t\toutput = type_message.ReplyMessageText{\n\t\t\tReplyMessage: type_message.ReplyMessage{\n\t\t\t\tToUserName: type_message.CDATA(msg.FromUserName),\n\t\t\t\tFromUserName: type_message.CDATA(msg.ToUserName),\n\t\t\t\tCreateTime: strconv.FormatInt(time.Now().Unix(), 10),\n\t\t\t\tMsgType: type_message.ReplyMsgTypeText,\n\t\t\t},\n\t\t\tContent: type_message.CDATA(result.Result),\n\t\t}\n\t}\n\n\tOffiAccount.Server.Response(c.Writer, c.Request, output)\n}"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"運行效果"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/18/18dc690a3c16f897bf7832425a186857.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"結語"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"至此,在"},{"type":"codeinline","content":[{"type":"text","text":"fastwego/offiaccount"}]},{"type":"text","text":" 和 "},{"type":"codeinline","content":[{"type":"text","text":"fastwego/dingding"}]},{"type":"text","text":" 這兩個開源 Golang SDK 的輔助下,我們快速實現了微信 和 釘釘 服務打通的效果。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"完整演示代碼:"},{"type":"link","attrs":{"href":"https://github.com/fastwego/offiaccount-demo","title":""},"content":[{"type":"text","text":"https://github.com/fastwego/offiaccount-demo"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"你也試一試吧~"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章