Тема: AHK: Работа с twitter
Подскажите плиз, есть ли возможность при помощи AHK следить за твитами определенного пользователя? Проверять на новые твиты
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Подскажите плиз, есть ли возможность при помощи AHK следить за твитами определенного пользователя? Проверять на новые твиты
Есть.
Можно ссылочку на библиотеку и доку к ней, или че нить подобное? Или в какую сторону копать?
Слепил вот так
StringBetween( String, NeedleStart, NeedleEnd="" ) {
StringGetPos, pos, String, % NeedleStart
If ( ErrorLevel )
Return ""
StringTrimLeft, String, String, pos + StrLen( NeedleStart )
If ( NeedleEnd = "" )
Return String
StringGetPos, pos, String, % NeedleEnd
If ( ErrorLevel )
Return ""
StringLeft, String, String, pos
Return String
}
UrlDownloadToVar(URL, UserAgent = "")
{
WebRequest := ComObjCreate("WinHttp.WinHttpRequest.5.1")
WebRequest.Open("GET", Url)
UserAgent ? WebRequest.Option(WinHttpRequestOption_UserAgentString := 0) := UserAgent
WebRequest.Send()
Text := WebRequest.ResponseText
WebRequest := ""
return Text
}
Loop
{
text := UrlDownloadToVar("https://twitter.com/LeagueGiveaway")
tweet := trim(StringBetween( text, "<ol class=""stream-items js-navigable-stream"" id=""stream-items-id"">", "<div class=""stream-item-footer"">" ))
time := trim(StringBetween( tweet, "<span class=""_timestamp js-short-timestamp js-relative-timestamp", "</span>" ))
time := trim(StringBetween( time, ">", "" ))
if (RegExMatch(time, "s") != 0)
{
MsgBox % "New tweet"
}
Sleep 500
}
F2::ExitApp
Но в постоянно вылетает окно с ошибкой:
Как избавиться от этой ошибки? и может все таки я изобретаю велосипед?
Добрый день. Есть ли на AutoHotkey пример получения таймлайна с Твиттера, содержащего ссылки на твитты профиля? Пробовал в браузерном инструменте разработчика определить нужные запросы, но там слишком все запутано.
Оказалось, что Твиттер даже на таймлайне при прокрутке глубже месяца не показывает. Но тоже самое можно сделать в поиске, указав диапазоны дат - https://twitter.com/search?q=from%3AhtG … amp;f=live.
Вроде прописываю всё как на сайте в инструментах разработчика - куки, данные авторизации воспроизвожу, тот же токен, но скачивание не происходит. По ссылке "https://twitter.com/i/api/2/search/adaptive.json", у них находится первая серия ссылок на твитты за указанный период -
cookies := "; "
authorization := ""
x_csrf_token := ""
;WinHTTP := ComObjCreate("Msxml2.XMLHTTP.6.0")
WinHTTP := ComObjCreate("WinHTTP.WinHttpRequest.5.1")
url := "https://twitter.com/i/api/2/search/adaptive.json?include_profile_interstitial_type=1&include_blocking=1&include_blocked_by=1&include_followed_by=1&include_want_retweets=1&include_mute_edge=1&include_can_dm=1&include_can_media_tag=1&include_ext_has_nft_avatar=1&include_ext_is_blue_verified=1&include_ext_verified_type=1&include_ext_profile_image_shape=1&skip_status=1&cards_platform=Web-12&include_cards=1&include_ext_alt_text=true&include_ext_limited_action_results=false&include_quote_count=true&include_reply_count=1&tweet_mode=extended&include_ext_views=true&include_entities=true&include_user_entities=true&include_ext_media_color=true&include_ext_media_availability=true&include_ext_sensitive_media_warning=true&include_ext_trusted_friends_metadata=true&send_error_codes=true&simple_quoted_tweet=true&q=from%3AhtGOIW%20since%3A2009-11-01%20until%3A2011-01-01&tweet_search_mode=live&query_source=typed_query&count=20&requestContext=launch&pc=1&spelling_corrections=1&include_ext_edit_control=true&ext=mediaStats%2ChighlightedLabel%2ChasNftAvatar%2CvoiceInfo%2CbirdwatchPivot%2Cenrichments%2CsuperFollowMetadata%2CunmentionInfo%2CeditControl%2Cvibe"
WinHTTP.Open("GET", url, 0)
WinHTTP.SetRequestHeader("Cookie", cookies)
WinHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36")
WinHTTP.SetRequestHeader("Pragma", "no-cache")
WinHTTP.SetRequestHeader("Cache-Control", "no-cache, no-store")
WinHTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
;WinHTTP.SetRequestHeader("Content-Type", "application/json")
;WinHTTP.SetRequestHeader("authority", "twitter.com")
WinHTTP.SetRequestHeader("path", "/i/api/2/search/adaptive.json?include_profile_interstitial_type=1&include_blocking=1&include_blocked_by=1&include_followed_by=1&include_want_retweets=1&include_mute_edge=1&include_can_dm=1&include_can_media_tag=1&include_ext_has_nft_avatar=1&include_ext_is_blue_verified=1&include_ext_verified_type=1&include_ext_profile_image_shape=1&skip_status=1&cards_platform=Web-12&include_cards=1&include_ext_alt_text=true&include_ext_limited_action_results=false&include_quote_count=true&include_reply_count=1&tweet_mode=extended&include_ext_views=true&include_entities=true&include_user_entities=true&include_ext_media_color=true&include_ext_media_availability=true&include_ext_sensitive_media_warning=true&include_ext_trusted_friends_metadata=true&send_error_codes=true&simple_quoted_tweet=true&q=from%3AhtGOIW%20since%3A2009-11-01%20until%3A2011-01-01&tweet_search_mode=live&query_source=typed_query&count=20&requestContext=launch&pc=1&spelling_corrections=1&include_ext_edit_control=true&ext=mediaStats%2ChighlightedLabel%2ChasNftAvatar%2CvoiceInfo%2CbirdwatchPivot%2Cenrichments%2CsuperFollowMetadata%2CunmentionInfo%2CeditControl%2Cvibe")
WinHTTP.SetRequestHeader("scheme", "https")
WinHTTP.SetRequestHeader("accept", "*/*")
;WinHTTP.SetRequestHeader("accept-encoding", "gzip, deflate, br")
WinHTTP.SetRequestHeader("accept-language", "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7")
WinHTTP.SetRequestHeader("authorization", authorization)
WinHTTP.SetRequestHeader("referer", "https://twitter.com")
WinHTTP.SetRequestHeader("sec-ch-ua", """ Not A;Brand"";v=""99"", ""Chromium"";v=""102""")
WinHTTP.SetRequestHeader("sec-ch-ua-mobile", "?0")
WinHTTP.SetRequestHeader("sec-ch-ua-platform", """Windows""")
WinHTTP.SetRequestHeader("sec-fetch-dest", "empty")
WinHTTP.SetRequestHeader("sec-fetch-mode", "cors")
WinHTTP.SetRequestHeader("sec-fetch-site", "same-origin")
WinHTTP.SetRequestHeader("x-csrf-token", x_csrf_token)
WinHTTP.SetRequestHeader("x-twitter-active-user", "yes")
WinHTTP.SetRequestHeader("x-twitter-auth-type", "OAuth2Session")
WinHTTP.SetRequestHeader("x-twitter-client-language", "ru")
WinHTTP.Send()
WinHTTP.WaitForResponse()
RTxt := WinHTTP.ResponseText
fileappend, % RTxt, %A_ScriptDir%\RTxt%a_now%.html, UTF-8
return
Esc::
ExitApp
Вы опять бездумно перечисляете все хедеры.
Изучайте:
https://github.com/JustAnotherArchivist/snscrape
Если перечислить все хедеры, из-за этого может не скачивать?
У вас же уже была подобная проблема.
Что касается именно твиттера - без понятия, что там за защита у них.
Если делать что-то серьезное, то лучше покупать их апи.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться