1

Тема: AHK: Работа с twitter

Подскажите плиз, есть ли возможность при помощи AHK следить за твитами определенного пользователя? Проверять на новые твиты

2

Re: AHK: Работа с twitter

Есть.

3 (изменено: Tamposhka, 2013-12-05 23:03:18)

Re: AHK: Работа с twitter

Можно ссылочку на библиотеку и доку к ней, или че нить подобное? Или в какую сторону копать?

4

Re: AHK: Работа с twitter

Слепил вот так

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

Но в постоянно вылетает окно с ошибкой:
http://i60.fastpic.ru/big/2013/1207/81/7cd3c226b5dd4b3be57f8c264900ee81.jpg

Как избавиться от этой ошибки? и может все таки я изобретаю велосипед?

5

Re: AHK: Работа с twitter

Добрый день. Есть ли на AutoHotkey пример получения таймлайна с Твиттера, содержащего ссылки на твитты профиля? Пробовал в браузерном инструменте разработчика определить нужные запросы, но там слишком все запутано.

6 (изменено: john_dease, 2023-05-05 10:18:23)

Re: AHK: Работа с twitter

Оказалось, что Твиттер даже на таймлайне при прокрутке глубже месяца не показывает. Но тоже самое можно сделать в поиске, указав диапазоны дат - https://twitter.com/search?q=from%3AhtG … amp;f=live.

7

Re: AHK: Работа с twitter

Вроде прописываю всё как на сайте в инструментах разработчика - куки, данные авторизации воспроизвожу, тот же токен, но скачивание не происходит. По ссылке "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

8

Re: AHK: Работа с twitter

Вы опять бездумно перечисляете все хедеры.
Изучайте:
https://github.com/JustAnotherArchivist/snscrape

9

Re: AHK: Работа с twitter

Если перечислить все хедеры, из-за этого может не скачивать?

10

Re: AHK: Работа с twitter

У вас же уже была подобная проблема.
Что касается именно твиттера - без понятия, что там за защита у них.
Если делать что-то серьезное, то лучше покупать их апи.