26

Re: AHK: Internet Explorer Platform APIs

serzh82saratov пишет:

MsgBox Нажми присоединится - введи любое имя - дождись пока прогрузится чат - нажми ок

Как-то непривычно видеть подобное). А чего с busy случилось, в HTML5 уже не проходит?

Кстати, у меня таким образом Enter тоже не нажимается, причем на любых сайтах. Я еще давно об этом писал в теме про IE.

27 (изменено: Malcev, 2018-01-09 21:18:22)

Re: AHK: Internet Explorer Platform APIs

Stepnoy пишет:

А чего с busy случилось, в HTML5 уже не проходит?

А чего сами не протестируете?

Stepnoy пишет:

Кстати, у меня таким образом Enter тоже не нажимается, причем на любых сайтах.

Версия IE какая? 11.0.9600.18893?

28

Re: AHK: Internet Explorer Platform APIs

Так потому и пишу, что у меня busy не сработал. Это был реальный вопрос, а не способ поумничать, если так показалось)).

Кстати, версия IE - 17843, винда сама не обновляется, если что.

29

Re: AHK: Internet Explorer Platform APIs

Обновляйтесь. Я в теме по ахкспай давал ссылку.

30

Re: AHK: Internet Explorer Platform APIs

Кстати спасибо за ссылку ещё раз. https://www.catalog.update.microsoft.co … =kb4047206
busy с readyState = "interactive" там работает, просто там долгий путь до чата, а я код приводил только для теста нажатий.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.28.02 (Unicode 32-bit).

31

Re: AHK: Internet Explorer Platform APIs

IE обновился до 18860, чего еще нужно скачать, чтобы его добить)?

Так все равно не срабатывает.

32

Re: AHK: Internet Explorer Platform APIs

Stepnoy, на 18837 и на 18893 работает.
Сортируете по дате обновления и скачиваете последний апдейт.
https://www.catalog.update.microsoft.co … xplorer+11
Если не поможет удалите полностью IE и поставьте заново.
ЗЫ Не понимаю зачем вам так нужно посылать кнопки на элементы?

33

Re: AHK: Internet Explorer Platform APIs

Malcev
Как то обсуждали "заманчивый и загадочный" WinHttpRequest , как думаешь получится с его помощью войти в чат скайп?

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.28.02 (Unicode 32-bit).

34

Re: AHK: Internet Explorer Platform APIs

Думаю, можно.
Но я бы не пользовался примером от Xameleon, так как он там сам собирает форму и отправляет её, что ИМХО сложно.
Легче посмотреть, что отправляет IE в постзапросе и откуда берутся эти данные и самому добывать их через регекспы и отправлять.

35

Re: AHK: Internet Explorer Platform APIs

Это запросы?
Ты как смотришь, по Ф12 скапливается куча запросов, не понятно где что.



#SingleInstance Force
#NoEnv


oIe := ComObjCreate("InternetExplorer.Application")
oIE.Silent := 1
; ComObjError(false) 
oIe.Visible := true 

ComObjConnect(oIE, WB_events) 

URL = https://join.skype.com/l4DFbTbAcA0Q

oIE.Navigate(URL)
return

class WB_events {  
    BeforeNavigate2(pDsip, url, flags, TargetFrameName, PostData, headers, cancel)
    {
		MsgBox, , ,  % clipboard := url "`n`n" PostData "`n`n" TargetFrameName "`n`n" flags "`n`n" headers
    } 
}  

	
Escape:: ExitApp
По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.28.02 (Unicode 32-bit).

36

Re: AHK: Internet Explorer Platform APIs

Смотрю по F12, убираю always refresh и все остальные подчищения (все кнопки где запись отжаты).
Загружаю ссылку, после ввода имени смотрю какие запросы и что отправляется.
Потом в поиске смотрю откуда они берутся и делаю тоже самое.

37

Re: AHK: Internet Explorer Platform APIs

Это ты про вкладку "сеть". А что в поиске смотришь, и что потом выполняешь, там запросов под сотню.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.28.02 (Unicode 32-bit).

38

Re: AHK: Internet Explorer Platform APIs

На этом сайте при нажатии join conversation отправляется по ссылке https://join.skype.com/telemetry/aria постЗапрос с RequestBody:

{"eventProperties":{"client_time":1515770208940,"milestone":"launch_web","result":"guest_user","thread_id":"19:9d7a9c975cc34161a9a4ea2bfce85fae@thread.skype","path":"launcher","uiVersion":"30003/0.9999.0.0","session_id":"d13d147a","user_agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko"},"eventName":"weblauncher_join"}

Ну и дальше ищешь откуда эти значения в массиве берутся.
Например,  19:9d7a9c975cc34161a9a4ea2bfce85fae@thread.skype из https://join.skype.com/api/v2/conversation/ ResponseBody.
Значит тебе сначала надо загрузить https://join.skype.com/api/v2/conversation потом получить thread_id и потом его отправить в  https://join.skype.com/telemetry/aria.

39

Re: AHK: Internet Explorer Platform APIs

Спасибо, схема проясняется.
А как вообще браузер решает какие запросы и в каком виде и главное синтаксисе надо отправлять. Исходя из полученных ответов не понятно откуда логика браузера решает послать именно такие многа букф.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.28.02 (Unicode 32-bit).

40

Re: AHK: Internet Explorer Platform APIs

Malcev пишет:

ЗЫ Не понимаю зачем вам так нужно посылать кнопки на элементы?

Да у меня даже busy не отрабатывает нормально, чего уж там об остальном говорить).

А вообще есть пара скриптов, которые в ie работают с input. Выкручиваюсь с помощью фокуса элементу и посыл enter в основной control. Хотя, по-хорошему, нужно на js все переделывать.
Тем более, недавно тему про jquery увидел).

Кстати, про постзапросы тоже интересно. Думал когда-нибудь все переделать с их помощью. Но это уже более высокий уровень, оставлю на будущее, пока просто послежу за темой.

41 (изменено: Malcev, 2018-01-12 21:08:06)

Re: AHK: Internet Explorer Platform APIs

serzh82saratov пишет:

А как вообще браузер решает какие запросы и в каком виде и главное синтаксисе надо отправлять

Не знаю, не интересовался.
Например на нашем сайте токен прописан как элемент формы на странице логина, соответственно броузер когда собирает форму, вместе с логином и паролем отправляет и токен.
Конкретно на сайте скайпа, запрос (что отправлять) формируется через джаваскрипты, как я понимаю.
Stepnoy, чем причитать, что у вас не работает, давно бы взяли и переустановили IE.

42

Re: AHK: Internet Explorer Platform APIs

+ Оф

Да все нормально, было бы критично - давно бы снес все). Просто хочется понять, что к чему, а переустановка всегда успеется.

Надюсь еще одним минусом за оф не наградят)).

43

Re: AHK: Internet Explorer Platform APIs

Stepnoy, вы не сможете понять, что к чему, используя кривой инструмент.
Разве что будете находить новые свои баги и засорять ими форум.
serzh82saratov, вот так можно подключиться через WinHttpRequest:

name := "YourName"
id := "m9y6rpxqvIet"

HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
HTTP.Open("GET", "https://join.skype.com/" id, true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache, no-store")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.send()
HTTP.WaitForResponse()
GetAllResponseHeaders := HTTP.GetAllResponseHeaders()
launcher_session_id := RegexReplace(GetAllResponseHeaders, "s)^.*Set-Cookie: launcher_session_id=(.+?);.*$", "$1")
csrf_token := RegexReplace(GetAllResponseHeaders, "s)^.*Set-Cookie: csrf_token=(.+?);.*$", "$1")

HTTP.Open("POST", "https://join.skype.com/api/v2/conversation", true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache, no-store")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.setRequestHeader("Content-Type", "application/json")
HTTP.send("{""shortId"":""" id """,""type"":""wl""}")
HTTP.WaitForResponse()
ResponseText := HTTP.ResponseText
threadId := RegexReplace(ResponseText, "s)^{""Resource"":""(.+?)"".*$", "$1")
longId := RegexReplace(ResponseText, "s)^.*,""Id"":""(.+?)"".*$", "$1")

HTTP.Open("POST", "https://join.skype.com/api/v1/users/guests", true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache, no-store")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.setRequestHeader("Content-Type", "application/json")
HTTP.setRequestHeader("csrf_token", csrf_token)
HTTP.send("{""name"":""" name """,""threadId"":""" threadId """,""shortId"":""" id """,""longId"":""" longId """,""flowId"":""" launcher_session_id """}")
HTTP.WaitForResponse()
msgbox % HTTP.ResponseText 

44

Re: AHK: Internet Explorer Platform APIs

Большое спасибо, буду разбирать.
Пока свежо, можешь добавить отправку сообщения, и получения списка сообщений в чате?

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.28.02 (Unicode 32-bit).

45

Re: AHK: Internet Explorer Platform APIs

Наивно полагал, что после входа и запроса web.skype.com/ru/guest получу весь хтмл с сообщениями чата, но увы.

HTTP.Open("GET", "https://web.skype.com/ru/guest", true)
HTTP.send()
HTTP.WaitForResponse()
MsgBox % HTTP.StatusText
msgbox % clipboard := HTTP.ResponseText
По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.28.02 (Unicode 32-bit).

46 (изменено: serzh82saratov, 2018-01-13 02:57:15)

Re: AHK: Internet Explorer Platform APIs

Выход из чата.


HTTP.Open("GET", "https://join.skype.com/guests/leave?threadId=" threadId, true)
HTTP.send()

Мой чат - pmCXysJVfUJO.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.28.02 (Unicode 32-bit).

47 (изменено: Malcev, 2018-01-13 06:33:52)

Re: AHK: Internet Explorer Platform APIs

Тестируй:

name := "YourName"
id := "m9y6rpxqvIet"
message := "Privet"

HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
HTTP.Open("GET", "https://join.skype.com/" id, true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache, no-store")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.send()
HTTP.WaitForResponse()
GetAllResponseHeaders := HTTP.GetAllResponseHeaders()
launcher_session_id := RegexReplace(GetAllResponseHeaders, "s)^.*Set-Cookie: launcher_session_id=(.+?);.*$", "$1")
csrf_token := RegexReplace(GetAllResponseHeaders, "s)^.*Set-Cookie: csrf_token=(.+?);.*$", "$1")

HTTP.Open("POST", "https://join.skype.com/api/v2/conversation", true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache, no-store")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.setRequestHeader("Content-Type", "application/json")
HTTP.send("{""shortId"":""" id """,""type"":""wl""}")
HTTP.WaitForResponse()
ResponseText := HTTP.ResponseText
threadId := RegexReplace(ResponseText, "s)^\{""Resource"":""(.+?)"".*$", "$1")
longId := RegexReplace(ResponseText, "s)^.*,""Id"":""(.+?)"".*$", "$1")

HTTP.Open("POST", "https://join.skype.com/api/v1/users/guests", true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache, no-store")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.setRequestHeader("Content-Type", "application/json")
HTTP.setRequestHeader("csrf_token", csrf_token)
HTTP.send("{""name"":""" name """,""threadId"":""" threadId """,""shortId"":""" id """,""longId"":""" longId """,""flowId"":""" launcher_session_id """}")
HTTP.WaitForResponse()
skypetoken := RegexReplace(HTTP.ResponseText, "s)^.*\{""skypetoken"":""(.+?)"".*$", "$1")

HTTP.Open("POST", "https://client-s.gateway.messenger.live.com/v1/users/ME/endpoints", true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache, no-store")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.setRequestHeader("Content-Type", "application/json")
HTTP.setRequestHeader("Authentication", "skypetoken=" skypetoken)
HTTP.send("{""endpointFeatures"":""Agent""}")
HTTP.WaitForResponse()
registrationToken := RegexReplace(HTTP.GetAllResponseHeaders(), "s)^.*Set-RegistrationToken: registrationToken=(.+?);.*$", "$1")

; отправка
now := A_NowUTC
EnvSub, now,1970, seconds
now .= A_MSec
HTTP.Open("POST", "https://client-s.gateway.messenger.live.com/v1/users/ME/conversations/" threadId "/messages", true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache, no-store")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.setRequestHeader("Content-Type", "application/json")
HTTP.setRequestHeader("RegistrationToken", "registrationToken=" registrationToken)
HTTP.send("{""content"":""" message """,""messagetype"":""RichText"",""contenttype"":""text"",""Has-Mentions"":""false"",""imdisplayname"":""" name """,""clientmessageid"":""" now """}")
HTTP.WaitForResponse()
msgbox % http.responsetext

; получение
HTTP.Open("GET", "https://client-s.gateway.messenger.live.com/v1/users/ME/conversations/" threadId "/messages?startTime=0&pageSize=51&view=msnp24Equivalent|supportsMessageProperties&targetType=Passport|Skype|Lync|Thread|PSTN", true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache, no-store")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.setRequestHeader("RegistrationToken", "registrationToken=" registrationToken)
HTTP.send()
HTTP.WaitForResponse()
msgbox % clipboard := http.responsetext

48 (изменено: serzh82saratov, 2018-01-13 13:41:43)

Re: AHK: Internet Explorer Platform APIs

Мой чат - m2FZ7OLzU1GT, чтобы в чужих не мусорить.
Я застрял с RegistrationToken, и насчёт clientmessageid не нашёл где его получение, подумал что там своё значение, но не заметил что оно похоже на время. Я вижу что игнорируешь некоторые заголовки, как ты понимаешь какие именно требуются?
Получение сообщений не понял, в этом массиве нет сообщений.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.28.02 (Unicode 32-bit).

49 (изменено: serzh82saratov, 2018-01-13 14:07:20)

Re: AHK: Internet Explorer Platform APIs

Если отправлять в чате через браузер команду "/showmembers" то её даже в поиске не остаётся, через запрос уходит как текст, а в чате оно отображатся не должно.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.28.02 (Unicode 32-bit).

50

Re: AHK: Internet Explorer Platform APIs

Заголовки я, кроме, отключения кеша и юзер-агента, никакие больше не посылаю.
Но если ответ от сервера отрицательный, то смотрю, где прописан какой-нибудь токен с набором кучи букв - его и отправляю.
У меня все сообщения есть.
После отправки не нажимай сразу OK, а отправь какие-нибудь сообщения через броузер и после нажатия ок ты их получишь.
Команда /showmembers, как я понял обращается напрямую к js-движку, так что наверное можно попробовать проверять различные запросы - может в каком-нибудь из них есть список пользователей.