Chilkat Examples

ChilkatHOMEAndroid™Classic ASPCC++C#Mono C#.NET Core C#C# UWP/WinRTDataFlexDelphi ActiveXDelphi DLLVisual FoxProJavaLianjaMFCObjective-CPerlPHP ActiveXPHP ExtensionPowerBuilderPowerShellPureBasicCkPythonChilkat2-PythonRubySQL ServerSwift 2Swift 3/4TclUnicode CUnicode C++Visual Basic 6.0VB.NETVB.NET UWP/WinRTVBScriptXojo PluginNode.jsExcelGo

Excel Web API Examples

Primary Categories

Facebook
GeoOp
Jira
PayPal
Peoplevox
QuickBooks

Shopify
Stripe
SugarCRM
Twitter
VoiceBase
Walmart
Xero
eBay
effectconnect

 

 

 

(Excel) Twitter - Get Follower IDs

Demonstrates 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.

Download Excel Class Modules

Chilkat Excel Class Modules

' 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..
Dim json As Chilkat.JsonObject
Set json = Chilkat.NewJsonObject

success = json.LoadFile("qa_data/tokens/twitter.json")

Dim rest As Chilkat.Rest
Set rest = Chilkat.NewRest
Dim oauth1 As Chilkat.OAuth1
Set oauth1 = Chilkat.NewOAuth1

oauth1.ConsumerKey = "TWITTER_CONSUMER_KEY"
oauth1.ConsumerSecret = "TWITTER_CONSUMER_SECRET"
oauth1.Token = json.StringOf("oauth_token")
oauth1.TokenSecret = json.StringOf("oauth_token_secret")
oauth1.SignatureMethod = "HMAC-SHA1"
success = oauth1.GenNonce(16)

success = rest.SetAuthOAuth1(oauth1,False)


bAutoReconnect = True
success = rest.Connect("api.twitter.com",443,True,bAutoReconnect)
If (success <> True) Then
    Debug.Print rest.LastErrorText
    Exit Sub
End If

' This ends the initial setup...
' ----------------------------------------------------------------------

' This Twitter user has about 77.5K followers..
success = rest.AddQueryParam("screen_name","MarcusMiller959")

Dim jsonResponse As Chilkat.JsonObject
Set jsonResponse = Chilkat.NewJsonObject
jsonResponse.EmitCompact = False

' Get the 1st page of results using a cursor of "-1".
Dim sbNextCursor As Chilkat.StringBuilder
Set sbNextCursor = Chilkat.NewStringBuilder
success = sbNextCursor.SetString("-1")


pageNum = 1

caseSensitive = False

bContinue = True
' Get a maximum of 5 pages (of 5000 ids each).
Do While bContinue = True

    If (sbNextCursor.ContentsEqual("0",caseSensitive) = True) Then
        ' This will cause the loop to exit..
        bContinue = False
    Else
        ' Adds or replaces the query param.
        success = rest.AddQueryParam("cursor",sbNextCursor.GetAsString())

        ' Get the next page of follower IDs

        resp = rest.FullRequestNoBody("GET","/1.1/followers/ids.json")
        If (rest.LastMethodSuccess <> True) Then
            Debug.Print rest.LastErrorText
            Exit Sub
        End If

        success = jsonResponse.Load(resp)

        If (rest.ResponseStatusCode <> 200) Then
            Debug.Print jsonResponse.Emit()
            Exit Sub
        End If

        ' Show the number of IDs returned in this 

        numIds = jsonResponse.SizeOfArray("ids")
        Debug.Print "Page "; pageNum; ", Number of Ids: "; numIds

        ' Show the 1st 10 ids in this page.

        i = 0
        Do While i < numIds
            jsonResponse.I = i
            Debug.Print "    "; i; ": "; jsonResponse.StringOf("ids[i]")

            i = i + 1
            If (i > 10) Then
                ' Force the loop to exit.
                i = numIds
            End If

        Loop

        pageNum = pageNum + 1
        If (pageNum > 5) Then
            bContinue = False
        Else
            success = sbNextCursor.SetString(jsonResponse.StringOf("next_cursor_str"))
        End If

    End If

Loop

' 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-2019 Chilkat Software, Inc. All Rights Reserved.