API beta ABBYY Lingvo dictionaries/ API beta словарей ABBYY Lingvo

Помощь в написании скриптов
A_AhkUser
Posts: 1147
Joined: 06 Mar 2017, 16:18
Location: France
Contact:

API beta ABBYY Lingvo dictionaries/ API beta словарей ABBYY Lingvo

14 Mar 2017, 15:38

Привет!

Прежде всего, изнините меня на то случай, если бы я делал ошибки, дело в том что я француз.

Поскольку я люблю предаватся програмированнию (в частности если не исключительно ahk) и, поскольку, в то же время, столько мне нравится сколько и мне нужно, в рамках моего самообразования по русскому языку, усовершенсвоваться в этом языке, мне пришло на ум не разделять обе стороны моей деятельности. Другими словами, я стремлюсь к синергии между русским языком и программированнием. В рамках такого совместного действия, я создал программу предоставляющую мне возможность переводить лёгче так с французкого на русский как и с русского на французский языки путём Hotkey command, webrequest @ https://www.lingvolive.com/en-us и RegExMatch.

Теперь я хотел бы изменить метод с помощью которого до сих пор я добиваюсь своего, поскольку ABBYY Lingvo обеспечивает API (https://developers.lingvolive.com/ru-ru) способствующее именно то, что я постораюсь осущесвить. Хотя моё regexematch работет, я предпочитал бы, извлечь выгоду от API -- всё это делать с одобрением ABBYY :terms:

Бот мой код:

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 ? достаточным ли являестя он?

спасибо большое за заботливость.
my scripts

Return to “Помощь”

Who is online

Users browsing this forum: No registered users and 13 guests