iOS日记-微软翻译接入

微软翻译官方文档:https://docs.microsoft.com/zh-cn/azure/cognitive-services/translator/reference/v3-0-translate

最近项目中接入了微软翻译功能,在查找相关资料的时候发现网上关于这个的资料比较少。在此做个简单的总结,希望能对大家有所帮助。

接入

微软的翻译功能其实就是提供了一个链接地址:https://api.cognitive.microsofttranslator.com/translate
将需要翻译的文本以httpBody的方式传入该地址,就会得到翻译后的文本。

接口需要的参数

<1>params

iOS日记-微软翻译接入_第1张图片
截屏2019-11-26下午4.00.57.png

api-version:该参数为版本号,值为固定值3.0
to:该参数为翻译后的输出文本语言,例如:zh-Hans
这两个参数是拼接在https://api.cognitive.microsofttranslator.com/translate这个链接地址上的

<2>Headers

iOS日记-微软翻译接入_第2张图片
截屏2019-11-26下午4.09.03.png

这里必需的两个参数为:身份验证标头、Content-Type。

Content-Type:指定有效负载的内容类型,值为:application/json; charset=UTF-8
身份验证标:第一个选项是使用 Ocp-Apim-Subscription-Key 标头进行身份验证。 将 Ocp-Apim-Subscription-Key: 标头添加到请求中,或者,可以交换访问令牌的密钥。 此令牌作为 Authorization 标头包含在每个请求中。一般都是用第二种方式进行身份验证,即使用Authorization,例如:Authorization: Bearer 。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来模拟一下

iOS日记-微软翻译接入_第3张图片
截屏2019-11-26下午4.28.32.png

iOS日记-微软翻译接入_第4张图片
截屏2019-11-26下午4.29.32.png
  • 这里Authorization的value需要注意下,Bearer与后面的值(这个值需要后台获取,具体获取方式见官方文档)之间是有空格的。


    iOS日记-微软翻译接入_第5张图片
    截屏2019-11-26下午4.32.14.png

    iOS日记-微软翻译接入_第6张图片
    截屏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
                
            }
 }
  

如果有帮到你的话,点个赞再走?

你可能感兴趣的:(iOS日记-微软翻译接入)