【Golang】对接百度翻译API-golang版本sdk代码
最近为自己的客服系统增加了在线翻译功能
可以把访客任何语种消息翻译为中文
客服消息一键翻译为英文,详细演示效果可以注册唯一客服系统(gofly.v1kf.com),我审核通过后就可以体验了
详细golang版本的sdk如下:
package lib import ( "fmt" "github.com/tidwall/gjson" "kefu/tools" "net/url" ) type BaiduFanyi struct { AppId, AppSec string } func (this *BaiduFanyi) Translate(query, from, to string) (string, error) { salt := "1435660288" data := url.Values{} data.Set("q", query) data.Set("salt", salt) data.Set("appid", this.AppId) data.Set("from", from) data.Set("to", to) data.Set("sign", this.BuildSign(query, salt)) res, err := tools.PostForm("http://api.fanyi.baidu.com/api/trans/vip/translate", data) fmt.Println(res, err) res = gjson.Get(res, "trans_result.0.dst").String() res = tools.UrlDecode(res) return res, err } func (this *BaiduFanyi) BuildSign(query, salt string) string { str := fmt.Sprintf("%s%s%s%s", this.AppId, query, salt, this.AppSec) ret := tools.Md5(str) return ret }
使用方式如下:
baidu := &BaiduFanyi{ AppId: "2022070xxxxxx5", AppSec: "xxxxxxx", } res, err := baidu.Translate("hello", "en", "zh") log.Print(res, err) time.Sleep(1 * time.Second) res, err = baidu.Translate("taoshihan", "en", "zh") log.Print(res, err) time.Sleep(1 * time.Second) res, err = baidu.Translate("can i help you", "en", "zh") log.Print(res, err) time.Sleep(1 * time.Second) res, err = baidu.Translate("你好", "zh", "en") log.Print(res, err)
这个里面的MD5函数,以及urldeocde函数,以及发送post form数据函数
//发送http post请求数据为form func PostForm(url string, data url.Values) (string, error) { resp, err := http.PostForm(url, data) if err != nil { return "", err } defer resp.Body.Close() content, err := ioutil.ReadAll(resp.Body) if err != nil { return "", err } return string(content), nil }
//md5加密 func Md5(src string) string { m := md5.New() m.Write([]byte(src)) res := hex.EncodeToString(m.Sum(nil)) return res }
func UrlDecode(str string) string { res, err := url.QueryUnescape(str) if err != nil { return "" } return res }
十年开发经验程序员,离职全心创业中,历时三年开发出的产品《唯一客服系统》
一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的网站在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的全渠道在线客服系统,致力于帮助广大开发者/公司快速部署整合私有化客服功能。
开源地址:唯一客服(开源学习版)
官网地址:唯一客服官网