微软翻译官方文档:https://docs.microsoft.com/zh-cn/azure/cognitive-services/translator/reference/v3-0-translate
最近项目中接入了微软翻译功能,在查找相关资料的时候发现网上关于这个的资料比较少。在此做个简单的总结,希望能对大家有所帮助。
接入
微软的翻译功能其实就是提供了一个链接地址:https://api.cognitive.microsofttranslator.com/translate
将需要翻译的文本以httpBody的方式传入该地址,就会得到翻译后的文本。
接口需要的参数
<1>params
api-version:该参数为版本号,值为固定值3.0
to:该参数为翻译后的输出文本语言,例如:zh-Hans
这两个参数是拼接在https://api.cognitive.microsofttranslator.com/translate这个链接地址上的
<2>Headers
这里必需的两个参数为:身份验证标头、Content-Type。
Content-Type:指定有效负载的内容类型,值为:application/json; charset=UTF-8
身份验证标:第一个选项是使用 Ocp-Apim-Subscription-Key 标头进行身份验证。 将 Ocp-Apim-Subscription-Key: <YOUR_SECRET_KEY> 标头添加到请求中,或者,可以交换访问令牌的密钥。 此令牌作为 Authorization 标头包含在每个请求中。一般都是用第二种方式进行身份验证,即使用Authorization,例如:Authorization: Bearer <Base64-access_token>。Base64-access_token需要单独获取,这个通常是后台人员来完成的。
<3>Body
请求的正文是一个 JSON 数组。 每个数组元素都是一个 JSON 对象,具有一个名为 Text 的字符串属性,该属性表示要翻译的字符串。例如
[
{"Text":"I would really like to drive your car around the block a few times."}
]
以下限制适用:
- 数组最多可具有 100 个元素。
- 包括空格在内,请求中包含的整个文本不能超过 5,000 个字符。
下面我用postman来模拟一下
-
这里Authorization的value需要注意下,Bearer与后面的值(这个值需要后台获取,具体获取方式见官方文档)之间是有空格的。
截屏2019-11-26下午4.32.14.png
截屏2019-11-26下午4.34.36.png
以上就是翻译后得到的结果了。
swift
let header = ["Content-Type": "application/json; charset=UTF-8", "Authorization": "Bearer \(这个值需要后台获取,具体获取方式见官方文档)"]
var param = Array<[String:Any]>()
param.append(["Text":content])
let url = "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to=\(输出文本的语言)"
let urlS = URL(string: url)
var request: URLRequest? = nil
if let urlS = urlS {
request = URLRequest(url: urlS)
}
request?.httpMethod = "POST"
request?.httpBody = try? JSONSerialization.data(withJSONObject: param)
request?.allHTTPHeaderFields = header
if let request = request {
Alamofire.request(request).responseJSON { response in
//翻译结果
//your code
}
}
如果有帮到你的话,点个赞再走?