Прежде всего, изнините меня на то случай, если бы я делал ошибки, дело в том что я француз.
Поскольку я люблю предаватся програмированнию (в частности если не исключительно ahk) и, поскольку, в то же время, столько мне нравится сколько и мне нужно, в рамках моего самообразования по русскому языку, усовершенсвоваться в этом языке, мне пришло на ум не разделять обе стороны моей деятельности. Другими словами, я стремлюсь к синергии между русским языком и программированнием. В рамках такого совместного действия, я создал программу предоставляющую мне возможность переводить лёгче так с французкого на русский как и с русского на французский языки путём Hotkey command, webrequest @ https://www.lingvolive.com/en-us и RegExMatch.
Теперь я хотел бы изменить метод с помощью которого до сих пор я добиваюсь своего, поскольку ABBYY Lingvo обеспечивает API (https://developers.lingvolive.com/ru-ru) способствующее именно то, что я постораюсь осущесвить. Хотя моё regexematch работет, я предпочитал бы, извлечь выгоду от API -- всё это делать с одобрением ABBYY
Бот мой код:
Code: Select all
global MyAPIkey, token := ""
global WHR := ComObjCreate("WinHttp.WinHttpRequest.5.1"), succeded, timeout := 7, exception
WHR.Open("POST", "https://developers.lingvolive.com/api/v1.1/authenticate", true)
WHR.SetRequestHeader("authorization", "Basic" . A_Space . MyAPIkey)
WHR.SetRequestHeader("cache-control", "no-cache")
try {
WHR.Send()
succeded := WHR.WaitForResponse(timeout)
} catch exception {
WHR.Abort()
return
}
if not (succeded) {
WHR.Abort()
return
}
if (WHR.Status == 200) {
token := WHR.ResponseText
(WHR:=ComObjCreate("WinHttp.WinHttpRequest.5.1")).Open("GET", "https://developers.lingvolive.com/api/v1/Translation?text=go&srcLang=1033&dstLang=1049", true)
WHR.SetRequestHeader("authorization", "Bearer" . A_Space . token)
WHR.SetRequestHeader("cache-control", "no-cache")
try {
WHR.Send()
succeded := WHR.WaitForResponse(timeout)
} catch exception {
WHR.Abort()
return
}
if not (succeded) {
WHR.Abort()
return
}
MsgBox % WHR.Status
MsgBox % WHR.ResponseText
}
Первый request (POST) returns 200 в качестве Status и ResponseText свойство равно token (см.https://developers.lingvolive.com/en-us ... thenticate)
Второй request (GET) также returns 200 и, согласно ожеданиям, последний MsgBox действительно returns мне статью в виде json цепочки.
Дело в том что я не очень осведомлён о совокупности механизмов, вовлечённых при исползовании POST метода.
В частности, последний требует посылки API key. Из предосторожности здесь я для того чтобы удостовериться в безопастности моего скрипта.
Могу ли я удовлетваряться фактом, что URL включает в себе https ? достаточным ли являестя он?
спасибо большое за заботливость.