Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
lo=www.17track.net , который по идее заполняется из домена страницы (не помню имя самой переменной). Если убрать этот параметр, придет JSON с ошибкой, вроде что-то типа «NotAllowed». Однако если подставить нужный вариант, никаких проверок даже по реферреру не будет произведено. $track = "EM*********JP";
$array = array($track, 0, "www.17track.net");
$string = join($array, "{EDFCE98B-1CE6-4D87-8C4A-870D140B62BA}");
echo hash('md5', $string);
if(success){
var lasttdate=((result["dat"]["z"]["a"]==null)?"null":result["dat"]["z"]["a"]);
if(UserProperties.getProperty(num[i][0]) != lasttdate){
translit = UrlFetchApp.fetch("http://translate.google.com/translate_a/t?client=t&q="+encodeURI(result["dat"]["z"]["b"]));
translitobj = Utilities.jsonParse(translit.getContentText());
sendstring += translitobj[0][0][3] ? translitobj[0][0][3] : result["dat"]["z"]["b"];
sendSMS(sendstring);
UserProperties.setProperty(num[i][0], lasttdate);
success = false;
}
({"ret":1,"msg":"Ok","dat":{"c":"RB335828484HK","d":8011,"e":18031,"f":1,"g":1,"h":1,"i":-1,"j":998,"k":4899,"l":9,"m":29,"v":"9999-12-31T00:00:00","w":"9999-12-31T00:00:00","x":[{"a":"22-Aug-2013","b":"The item (RB335828484HK) was in transit within its destination country on 22-Aug-2013."}],"y":[{"a":"22 August 2013 06:08","b":"Обработка, 443962, САМАРА МСЦ УОПО, Прибыло в сортировочный центр"},{"a":"22 August 2013 03:26","b":"Обработка, 443982, САМАРА PI-2, Покинуло место международного обмена"},{"a":"21 August 2013 11:19","b":"Таможенное оформление завершено, 443982, САМАРА PI-2, Выпущено таможней"},{"a":"21 August 2013 09:11","b":"Передано таможне, 443982, САМАРА PI-2"},{"a":"20 August 2013 21:59","b":"Импорт, 443982, САМАРА PI-2, АФИПСИП, ТАХТАМУКАЙСКИЙ РАЙОН, АДЫГЕЯ РЕСПУБЛИКА"}],"z":{"a":"22 August 2013 06:08","b":"Обработка, 443962, САМАРА МСЦ УОПО, Прибыло в сортировочный центр"}}})& у вас повылазили вместо амперсандов в ссылкеvar user = ["...", "..."];
var num = [
["...", "..."]
];
var errors = {
"hsErr": "Wrong hash",
"unAllow": "You've changed parameter \"lo\" in query URL. Set it to \"www.17track.net\"",
"hsNon": "There's no hash"
}
var success = false;
function sendSMS(text){
UrlFetchApp.fetch("http://sms.ru/sms/send?api_id="+user[0]+"&to="+user[1]+"&text="+encodeURI(text));
}
function digest2str(digest){
var str = '';
var i = 0;
for (i=0; i<digest.length; i++) {
byte = digest[i];
if (byte < 0)
byte += 256;
byteStr = byte.toString(16);
// Ensure we have 2 chars in our byte, pad with 0
if (byteStr.length == 1) byteStr = '0'+byteStr;
str += byteStr;
}
return str;
}
function checkStatus(){
var i = 0;
for(i=0; i<num.length; i++){
hashstr = num[i][0]+"{EDFCE98B-1CE6-4D87-8C4A-870D140B62BA}0{EDFCE98B-1CE6-4D87-8C4A-870D140B62BA}www.17track.net";
dig = Utilities.computeDigest(Utilities.DigestAlgorithm.MD5, hashstr);
hs = digest2str(dig);
var response = UrlFetchApp.fetch("http://s1.17track.net/Rest/HandlerTrackPost.ashx?lo=www.17track.net&num="+num[i][0]+"&hs="+hs);
UserProperties.setProperty("q", response.getContentText());
var result = Utilities.jsonParse(response.getContentText().replace(/^\((.*)\)$/, "$1"));
var sendstring = num[i][1]+": ";
if(result["msg"]!="abN"){
if(result["ret"] == 1){
if(result["dat"]["f"] == "0"){
sendstring += "Track code not found";
}else{
success = true;
}
}else{
sendstring += errors[result["msg"]] ? errors[result["msg"]] : "Please, leave comment on habrahabr, error message: "+result["msg"];
}
if(success){
if(result["dat"]["z"]!=null){
if(UserProperties.getProperty("'"+num[i][0]+"'") != result["dat"]["z"]["b"]){
//if(true){
translit = UrlFetchApp.fetch("http://translate.google.com/translate_a/t?client=t&q="+encodeURI(result["dat"]["z"]["b"]));
translitobj = Utilities.jsonParse(translit.getContentText());
if(translitobj[0][0][3]){
for(z in translitobj[0]){
sendstring += translitobj[0][z][3]+" ";
}
}else{
sendstring += result["dat"]["z"]["b"];
}
sendSMS(sendstring);
UserProperties.setProperty("'"+num[i][0]+"'", result["dat"]["z"]["b"]);
success = false;
}
}
}else{
sendSMS(sendstring);
}
}
}
}
["%TRACKCODE%", "%NAME%", "%COUNTRYID%"]var response = UrlFetchApp.fetch("http://s1.17track.net/Rest/HandlerTrackPost.ashx?lo=www.17track.net&num="+num[i][0]+"&hs="+hs);var response = UrlFetchApp.fetch("http://s1.17track.net/Rest/HandlerTrackPost.ashx?lo=www.17track.net&num="+num[i][0]+"&hs="+hs+"&pt="+num[i][2]);
Автоматическое оповещение об изменениях статуса почтовых посылок через SMS