1. 程式人生 > 其它 >微信公眾號-通用百度翻譯程式碼實現

微信公眾號-通用百度翻譯程式碼實現

技術標籤:微信公眾號開發百度小程式c#機器翻譯加密解密

在這裡插入圖片描述
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;