Hi Ari, I'm not familiar with VBA enough to comment on the code, but if you could provide an example of the basestring created, authorization header and signature (remember to exclude any secrets) then we can take a look at what could be going wrong.
Best, @themattharris <https://twitter.com/intent/follow?screen_name=themattharris> Developer Advocate, Twitter 2011/6/23 Ari Endo <arien...@gmail.com> > Dear Tom, > > Here is my vba code, just for your information. > It returns 401 Unauthorized, > Failed to validate oauth signature and token > > I appreciate if you give me a hint. > > ------------------------------------------------- > Private Sub cbRequestToken_Click() > > Const urlRequestToken As String = > "https://api.twitter.com/oauth/request_token" > Const oauth_consumer_secret As String = "(my consumer secret)" > Dim timestamp As Long > Dim strBase As String > timestamp = DateDiff("s", #1/1/1970#, DateAdd("h", -9, Now)) > Dim param As New Scripting.Dictionary (hash array) > param("oauth_callback") = "oob" > param("oauth_consumer_key") = "(my consumer key)" > param("oauth_nonce") = CStr(timestamp + 1) > param("oauth_signature_method") = "HMAC-SHA1" > param("oauth_timestamp") = CStr(timestamp) > param("oauth_version") = "1.0" > > strBase = "POST&" & urlEncode(urlRequestToken) & "&" & > urlEncode(sortedParamConnected(param)) > param("oauth_signature") = > urlEncode(hmac_sha1(oauth_consumer_secret & "&", strBase)) > > Dim strHeader As String > strHeader = "OAuth " > Dim i As Integer > For i = 0 To param.Count - 1 > strHeader = strHeader & param.Keys(i) & "=""" & > urlEncode(param.Items(i)) & """" > If i < param.Count - 1 Then strHeader = strHeader & ", " > Next > > Dim xmlhttp As New MSXML2.xmlhttp > xmlhttp.Open "POST", urlRequestToken, False > xmlhttp.setRequestHeader "Authorization", strHeader > xmlhttp.send > > If xmlhttp.statusText <> "OK" Then Exit Sub > > End Sub > > There are several Excel VBA application which can be authenticated. > The point is they make a twitter class and make an object to access. > I am developing without using class (object-oriented). > > 1. my time is correct (UTC) > 2. my signature is correct (compared with the sample in twitter > documentation) > 3. when URL is https://api.twitter.com/1/, 404 Not found came back > > Thank you in advance, > Ari > > > Tom van der Woerdt schrieb (2011/06/11 9:21): > > A desktop authentication flow usually includes a callback with a > > custom scheme (myapp://redirect) or xAuth, while a server application > > will usually use a normal callback (http://example.com/callback) with > > the normal OAuth flow. > > > > However, this won't cause the "Woah there!" error you get. Just like > > anything else related to the programming itself: Twitter doesn't > > discriminate by programming language. As long as you are using the API > > correctly, it's fine. > > > > To answer your initial question: you can use C (non-object oriented > > language) and C++ (object-oriented language) and many other languages > > to interface with Twitter. It's an API, so it's all the same, as long > > as you can make a HTTP request. > > > > Tom > > > > > > On 6/11/11 2:17 AM, Ari Endo wrote: > >> Dear Tom, > >> > >> Thank you for your quick support. > >> I have checked all the items you listed below. > >> > >> What I would like to know is information for desktop application > >> different from server application. > >> > >> I would appreciate if you tell me any. > >> Thank you in advance, > >> > >> Ari > >> > >> Tom van der Woerdt さんは書きました (2011/06/10 17:50): > >>> I just checked and I was wrong - "Woah there!" can mean a lot of > >>> thnigs. > >>> > >>> 1. Make sure that your time is right > >>> 2. Make sure that the signature you make is right > >>> 3. Make sure that your endpoint starts with https://api.twitter.com/1/ > >>> 4. Make sure that you use valid credentials > >>> 5. Make sure that you are supplying all the required parameters > >>> 6. Make sure that your nonce is correct > >>> 7. Make sure everything else is correct > >>> > >>> Tom > >>> > >>> > >>> On 6/10/11 10:45 AM, Ari Endo wrote: > >>>> Dear Tom, > >>>> > >>>> Never ever did I hit the rate limit. > >>>> I call only once to get the authentication token. > >>>> > >>>> At most, only several times for trials. > >>>> Thank you for your reply, > >>>> > >>>> Ari > >>>> > >>>> Tom van der Woerdt wrote (2011/06/10 17:38): > >>>>> "Woah there" - sounds like you are hitting a rate limit. If you don't > >>>>> authenticate your calls, you may only make 150 API calls per hour. > >>>>> > >>>>> Tom > >>>>> > >>>>> On 6/10/11 12:54 AM, ari_endo wrote: > >>>>>> Hello, I am developing Twitter AP with Excel VBA. > >>>>>> When accessing with an object generated from twitter class, it > >>>>>> works. > >>>>>> But only with XMLHttpRequest (without object) it gets "Woah there" > >>>>>> message. > >>>>>> > >>>>>> Is object-oriented programming needed when developing desktop > >>>>>> applications? > >>>>>> I need reference for desktop application. > >>>>>> I appreciate if any site is introduced. > >>>>>> > >>>>>> Thank you in advance, > >>>>>> Ari Endo > >>>>>> > > > > -- > Twitter developer documentation and resources: https://dev.twitter.com/doc > API updates via Twitter: https://twitter.com/twitterapi > Issues/Enhancements Tracker: > https://code.google.com/p/twitter-api/issues/list > Change your membership to this group: > https://groups.google.com/forum/#!forum/twitter-development-talk > -- Twitter developer documentation and resources: https://dev.twitter.com/doc API updates via Twitter: https://twitter.com/twitterapi Issues/Enhancements Tracker: https://code.google.com/p/twitter-api/issues/list Change your membership to this group: https://groups.google.com/forum/#!forum/twitter-development-talk