Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(AutoIt) Twitter - Get Follower IDsDemonstrates how to get a list of follower IDs for a Twitter user. If the number of followers is more than can be returned in a single response, this example will use cursors to page through the followers. Note: Rate limits will prevent a program from paging through huge lists of followers. In general, a maximum of 16 GET requests (pages) can be retrieved in a short period of time.
; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. ; ---------------------------------------------------------------------- ; This initial setup, which involves setting the OAuth1 properties and connecting ; to api.twitter.com, is only required once at the beginning. Once connected, the same ; object instance may be re-used, and if necessary, it will automatically reconnect ; as needed. ; Assume we've previously obtained an access token and saved it to a JSON file.. $oJson = ObjCreate("Chilkat.JsonObject") Local $bSuccess = $oJson.LoadFile("qa_data/tokens/twitter.json") $oRest = ObjCreate("Chilkat.Rest") $oOauth1 = ObjCreate("Chilkat.OAuth1") $oOauth1.ConsumerKey = "TWITTER_CONSUMER_KEY" $oOauth1.ConsumerSecret = "TWITTER_CONSUMER_SECRET" $oOauth1.Token = $oJson.StringOf("oauth_token") $oOauth1.TokenSecret = $oJson.StringOf("oauth_token_secret") $oOauth1.SignatureMethod = "HMAC-SHA1" $oOauth1.GenNonce(16) $oRest.SetAuthOAuth1($oOauth1,False) Local $bAutoReconnect = True $bSuccess = $oRest.Connect("api.twitter.com",443,True,$bAutoReconnect) If ($bSuccess <> True) Then ConsoleWrite($oRest.LastErrorText & @CRLF) Exit EndIf ; This ends the initial setup... ; ---------------------------------------------------------------------- ; This Twitter user has about 77.5K followers.. $oRest.AddQueryParam("screen_name","MarcusMiller959") $oJsonResponse = ObjCreate("Chilkat.JsonObject") $oJsonResponse.EmitCompact = False ; Get the 1st page of results using a cursor of "-1". $oSbNextCursor = ObjCreate("Chilkat.StringBuilder") $oSbNextCursor.SetString("-1") Local $iPageNum = 1 Local $bCaseSensitive = False Local $bContinue = True ; Get a maximum of 5 pages (of 5000 ids each). While $bContinue = True If ($oSbNextCursor.ContentsEqual("0",$bCaseSensitive) = True) Then ; This will cause the loop to exit.. $bContinue = False Else ; Adds or replaces the query param. $oRest.AddQueryParam("cursor",$oSbNextCursor.GetAsString()) ; Get the next page of follower IDs Local $sResp = $oRest.FullRequestNoBody("GET","/1.1/followers/ids.json") If ($oRest.LastMethodSuccess <> True) Then ConsoleWrite($oRest.LastErrorText & @CRLF) Exit EndIf $oJsonResponse.Load($sResp) If ($oRest.ResponseStatusCode <> 200) Then ConsoleWrite($oJsonResponse.Emit() & @CRLF) Exit EndIf ; Show the number of IDs returned in this Local $iNumIds = $oJsonResponse.SizeOfArray("ids") ConsoleWrite("Page " & $iPageNum & ", Number of Ids: " & $iNumIds & @CRLF) ; Show the 1st 10 ids in this page. Local $i = 0 While $i < $iNumIds $oJsonResponse.I = $i ConsoleWrite(" " & $i & ": " & $oJsonResponse.StringOf("ids[i]") & @CRLF) $i = $i + 1 If ($i > 10) Then ; Force the loop to exit. $i = $iNumIds EndIf Wend $iPageNum = $iPageNum + 1 If ($iPageNum > 5) Then $bContinue = False Else $oSbNextCursor.SetString($oJsonResponse.StringOf("next_cursor_str")) EndIf EndIf Wend ; A successful JSON response for the 1st page looks like this: ; { ; "ids": [ ; 3140496044, ; 793204773751324672, ; 789951187781050369, ; 763520773587922945, ; ... ; 15031286, ; 2668251246, ; 3751659443 ; ], ; "next_cursor": 1531680438812851153, ; "next_cursor_str": "1531680438812851153", ; "previous_cursor": 0, ; "previous_cursor_str": "0" ; } ; The output of this program looks like this: ; Page 1, Number of Ids: 5000 ; 0: 931953350 ; 1: 786708055 ; 2: 560845700 ; 3: 3140496044 ; 4: 793204773751324672 ; 5: 789951187781050369 ; 6: 763520773587922945 ; 7: 793143274059988992 ; 8: 793139683412762624 ; 9: 1588222783 ; 10: 703821370778451968 ; Page 2, Number of Ids: 5000 ; 0: 15031286 ; 1: 2668251246 ; 2: 3751659443 ; 3: 3324584493 ; 4: 2440214809 ; 5: 1322335441 ; 6: 4439178393 ; 7: 4911573711 ; 8: 720792880080560128 ; 9: 720805087124267008 ; 10: 172926330 ; Page 3, Number of Ids: 5000 ; 0: 93867176 ; 1: 2992946183 ; 2: 2825296077 ; 3: 3784572861 ; 4: 2150051321 ; 5: 2460881603 ; 6: 4128849341 ; 7: 2234697931 ; 8: 2379418164 ; 9: 3425171542 ; 10: 325759186 ; Page 4, Number of Ids: 5000 ; 0: 22793412 ; 1: 3347750489 ; 2: 316923043 ; 3: 2481719196 ; 4: 3363591905 ; 5: 3238116492 ; 6: 58467130 ; 7: 3015182362 ; 8: 2985342719 ; 9: 3095965720 ; 10: 17505957 ; Page 5, Number of Ids: 5000 ; 0: 2541434684 ; 1: 140022957 ; 2: 134845054 ; 3: 772810508 ; 4: 16979294 ; 5: 2320540225 ; 6: 105439442 ; 7: 2796744529 ; 8: 251128801 ; 9: 350229758 ; 10: 2683994716 ; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.