微信公眾號-通用百度翻譯程式碼實現
阿新 • • 發佈:2020-12-12
TransApi
package com.camel.ssm.util; import java.util.HashMap; import java.util.Map; //通用翻譯api public class TransApi { private static final String TRANS_API_HOST = "http://api.fanyi.baidu.com/api/trans/vip/translate"; private String appid; private String securityKey; public TransApi(String appid, String securityKey) { this.appid = appid; this.securityKey = securityKey; } public String getTransResult(String query, String from, String to) { Map<
String, String> params = buildParams(query, from, to); return HttpClientUtil.doGet(TRANS_API_HOST, params); } private Map<String, String> buildParams(String query, String from, String to) { Map<String, String> params = new HashMap<String, String>(); params.put("q", query); params.put("from", from); params.put("to", to); params.put("appid", appid); // 隨機數 String salt = String.valueOf(System.currentTimeMillis()); params.put("salt", salt); // 簽名 String src = appid + query + salt + securityKey; // 加密前的原文 params.put("sign", SecurityUtil.md5(src)); return params; } }
EchostrController
//百度翻譯 //字串判斷的話 要用equals 最好A在前,因為如果要是輸入的為空,會報錯 if(flog==2&&ime.getContent()!=null) { if ("A".equals(ime.getContent()) || "a".equals(ime.getContent())) { xuanxiang = 1; outcontent = "請輸入您想翻譯的詞彙"; outMsg.setContent(outcontent); outMsg.setMsgType("text"); return outMsg; } else if ("B".equals(ime.getContent()) || "b".equals(ime.getContent())) { xuanxiang = 2; outcontent = "請輸入您想翻譯的詞彙"; outMsg.setContent(outcontent); outMsg.setMsgType("text"); return outMsg; } if (xuanxiang == 1 && ime.getContent() != null) { // //獲取使用者發的詞彙 String query = ime.getContent(); // //呼叫api介面 TransApi api = new TransApi(APP_ID, SECURITY_KEY); String cocnstantsRelest = api.getTransResult(query, "zh", "en"); //將String轉成json JSONObject jsonObject1 = JSONObject.fromObject(cocnstantsRelest); JSONArray forecasts = jsonObject1.getJSONArray("trans_result"); String aa = ""; aa = aa + "【中譯英】" + "\n"; aa = aa + "翻譯內容:" + forecasts.getJSONObject(0).getString("src") + "翻譯結果: " + forecasts.getJSONObject(0).getString("dst") + "\n"; // aa=aa+forecasts.getJSONObject(0).getString("src_tts"); outMsg.setContent(aa); }else if (xuanxiang ==2&&ime.getContent() != null) { // //獲取使用者發的詞彙 String query = ime.getContent(); // //呼叫api介面 TransApi api = new TransApi(APP_ID, SECURITY_KEY); String cocnstantsRelest = api.getTransResult(query, "en", "zh"); //將String轉成json JSONObject jsonObject1 = JSONObject.fromObject(cocnstantsRelest); JSONArray forecasts = jsonObject1.getJSONArray("trans_result"); String aa = ""; aa = aa + "【英譯中】" + "\n"; aa = aa + "翻譯內容:" + forecasts.getJSONObject(0).getString("src") + "翻譯結果: " + forecasts.getJSONObject(0).getString("dst") + "\n"; outMsg.setContent(aa); }else { outcontent = "輸入有誤,請重新輸入A 或者是 B選項"; outMsg.setContent(outcontent); outMsg.setMsgType("text"); } } return outMsg;