首页 > SAP CLOUD > 破解google翻译API并生成SAP CLOUD API过程
2019
08-27

破解google翻译API并生成SAP CLOUD API过程

此为Open Connectrs的第一个成功运行的例子,注:在HOOK中使的JS代码,可直接使用NODE.JS的功能函数。
对翻译效果,GOOGLE的应该算是很好用的了,但google翻译的API,是收费的。在网上看到了一些破解过程,所以就把这个破解的功能做到了Open Connectors,一共做了三个API的方法,
分别是
gettk—————于用得到KT值;
single—————用于得词句的翻译,并得到拼音及相关词语造句,功能相当于https://translate.google.cn/的功能;
single_t————get方法,直接把文本内容翻译为中文,这文本支持HTML文本,也就是说给一个HTML文本,他不会把HTML标记给翻译了,但会把真正的文本翻译过来;
single_t————POST方法,引方法使用时计算TK值还不确认是按POST中的JSON文件计算还是如何计算,所以当前功能还不能使用

完整测试地址:此地址需要登陆SAP的账号使用:
https://devportalu34f5b50f-p561598trial.hanatrial.ondemand.com/product/translation/api/MY_translation/resource
简单测试地址:以下会把英语单词"bee"翻译成中文
https://p561598trial-trial.apim1.hanatrial.ondemand.com/p561598trial/MY_translation/single_t?textq=bee

——————————————–
当然最主要的还是实现过程,此破解事实上也不完美,使用的多了GOOGLE会判断到“恶意软件”调用,会使用不了,所以重点还是看破解过和,更重点还是Open Connectors学习;

一、先要学习一下网上GOOGLE API的破解原理:https://www.cnblogs.com/by-dream/p/6554340.html
二、打开SAP CLOUD服务中的Open Connectors,或者直接打开:https://my.openconnectors.ext.hanatrial.ondemand.com/welcome
三、创建一个Connectors:MY_translation,只要输入名字,及BASE URL:       https://translate.google.cn/,就行,其实的保持默认
破解google翻译API并生成SAP CLOUD API过程 - 第1张  | 优通SAP 破解google翻译API并生成SAP CLOUD API过程 - 第2张  | 优通SAP
四、增加Resources:  gettk,用于得到TK值,使用GET 方法,参数如图,加入PostRequest Hook代码

破解google翻译API并生成SAP CLOUD API过程 - 第3张  | 优通SAP


var b = function (a, b) {
for (var d = 0; d < b.length - 2; d += 3) {
var c = b.charAt(d + 2),
c = "a" <= c ? c.charCodeAt(0) - 87 : Number(c),
c = "+" == b.charAt(d + 1) ? a >>> c : a << c;
a = "+" == b.charAt(d) ? a + c & 4294967295 : a ^ c
}
return a
}
//文本,TKK
var tk = function (a,TKK) {
for (var e = TKK.split("."), h = Number(e[0]) || 0, g = [], d = 0, f = 0; f < a.length; f++) {
var c = a.charCodeAt(f);
128 > c ? g[d++] = c : (2048 > c ? g[d++] = c >> 6 | 192 : (55296 == (c & 64512) && f + 1 < a.length && 56320 == (a.charCodeAt(f + 1) & 64512) ? (c = 65536 + ((c & 1023) << 10) + (a.charCodeAt(++f) & 1023), g[d++] = c >> 18 | 240, g[d++] = c >> 12 & 63 | 128) : g[d++] = c >> 12 | 224, g[d++] = c >> 6 & 63 | 128), g[d++] = c & 63 | 128)
}
a = h;
for (d = 0; d < g.length; d++) a += g[d], a = b(a, "+-a^+6");
a = b(a, "+-3^+b+-f");
a ^= Number(e[1]) || 0;
0 > a && (a = (a & 2147483647) + 2147483648);
a %= 1E6;
return a.toString() + "." + (a ^ h)
}

let loc = response_body;
if (!response_body) {
done();
}


let regex = new RegExp("tkk:'(.*?)(?=')","g");
let myArray = regex.exec(loc);

let tkk = myArray[1];
let q = request_parameters["text"];
if(!q){q="test"}

let atk = tk(q,tkk);
//Construct the response body
let response = {
'tkk': tkk,
'tk': atk,
'q': q
};


//return the response body
done({
'response_body': response
});
五、增加Resources:  single_t,的get方法,用于翻译HMTL文本使方法,此google得到数据会直接放到一个文件F.JSON中,此设置是在HEAD中设置的,也就是打印时为直接下载文件,为了能直接得到翻译内容,所以在此增加了Post Request HOOK的JS处理
破解google翻译API并生成SAP CLOUD API过程 - 第4张  | 优通SAP

preRequest hook
let response = {};

let q = request_parameters["textq"];
let l_host = request_headers ["x-forwarded-host"];
let l_url = '/elements/api-v2/gettk';
let l_authorization = request_headers["authorization"];
l_url = l_url + "?text=" + encodeURIComponent(q);

const https = require('https');
var options = {
host: l_host,//'api.openconnectors.ext.hanatrial.ondemand.com', // 请求地址 域名,google.com等..
port:443,
path:l_url, // 具体路径eg:/upload
method: 'GET', // 请求方式, 这里以post为例
headers: {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization":l_authorization
}
};
//Get tk
https.get(options, (res) => {
console.log(l_authorization);
let rawData = '';
res.on('data', (chunk) => rawData += chunk);
res.on('end', () => {
try {
let parsedData = JSON.parse(rawData);
response["tk"] = parsedData["tk"];
response["q"] = q;
//request_vendor_url +=
done({ "request_vendor_parameters": response })

}
catch (e) {
console.log(e.message);
done({ "request_vendor_parameters": e.message});
}
});
});

post Request hook
//"content-disposition": "attachment; filename="f.txt"",
let response = response_headers;
delete response["Content-Disposition"];
done({"response_headers":response});


最后编辑:
作者:yangsen
本站为个人博客网站,全由我个人维护,我从事SAP开发13年,其它ERP开发7年,基本都是零售行业。本站记录工作学习的过程, 有SAP相关询问专、兼职工作可随时联系我。 有网站相关的问题可直接在文章下方留言,或者联系我。 邮件:yan252@163.com给我。 QQ:415402519

留下一个回复

你的email不会被公开。