I've been helping developers understand OAuth 1.0a for a number of years and have come away with a few tips that I hope will help you while debugging OAuth issues.
- Make liberal use of the OAuth Tool linked to from each piece of REST API documentation and from your application record on this site. The OAuth Tool allows you create ideal OAuth signature base strings, executable curl commands, and a level of verbosity to the entire process that will help you to identify problems in your own code or environment.
- Use header-based OAuth whenever possible. It separates concerns and brings clarity to the spec -- oauth_* aren't placed in the POST body or querystring, which often alleviates common encoding issues.
- Know how to access the signature base string in the OAuth library you are using. Many libraries make this intermediate signing step difficult to access or locked within private methods. Most issues with OAuth signing can be tracked back to an invalidly formatted signature base string.
- If you're using header-based OAuth, make sure that your HTTP Authorization header is being properly setup and formatted. This will be language-specific. Also make sure that you aren't repeating any of the oauth_* parameters in the POST body or URL of your actual executed request. Only parameters that don't begin with oauth_* should appear in the POST body or query string. (In other words, don't present double authentication)
- Make sure that your HTTP verbs are in agreement
- If you're sending a POST, make sure your HTTP client is actually sending a POST and that your OAuth signature base string's method component matched
- Check you are using the right HTTP request method. Most methods on the Twitter API require a POST or GET request.
- Ensure that your system's timestamp is in sync with Twitter's. We return the current time in the "Date" HTTP header with every request. If your request fails due to a timestamp mismatch, use this time to determine the delta between the system clock and our server clock and adjust your oauth_timestamps for subsequent requests accordingly.
- Use a well-supported OAuth library. The various encoding steps of the protocol are difficult to get right -- your programming language's URL encoding methods, for example, may not be of the adequate flavor that OAuth 1.0A is expecting.
- Try alternate tools. When you run into issues with OAuth, try to replicate the request in another library or tool. Compare and contrast the differences between a successful request and a failed request. The OAuth Tool on this site is particularly helpful for this.
- Learn how to override the oauth_timestamp and oauth_nonce values in your OAuth library. Use this capability to replay signature generation scenarios for comparative analysis.
- Use auth on all REST API methods that support it. All Twitter REST API methods (except Search) support authentication and using auth means the requests are evaluated within the context of your current user.
- If you think you're not being rate limited in the proper context (150 requests per hour instead of 300), check for an X-Warning HTTP header in the response to your request. Some API methods that can be satisfied in a unauthenticated context will be served as such despite invalid authorization credentials and the X-Warning HTTP header will indicate whether an invalid signature was detected.
- Don't include oauth_* parameters not pertinent to the request. oauth_callback should only be sent to the request_token method, for example.
- Use valid endpoints. REST API requires api.twitter.com as the subdomain, and /1/ preceding the path to indicate the version. api.twitter.com/1/statuses/home_timeline.json not twitter.com/statuses/home_timeline.json
- Associate access token credentials with user ids, not screen names.
- oauth_token and oauth_token_secret strings change when a user's access moves between permission levels, or if a user denies your application access and then re-grants it access. Never assume that the strings will remain constants.
Many find these documents especially useful while learning OAuth.
- Moving from Basic Auth to OAuth - Explores the differences between Basic Auth and OAuth with newcomers in mind.
- Authentication & Authorization - Twitter offers a few flavors of OAuth and this helps you choose the right path for your application
- node/115 - A more in depth look at the OAuth 1.0A protocol
What tips do you have for developers running into issues with OAuth?



Replies
I found the 'Using OAuth 1.0a' [1] very useful for getting my OAuth client correct. Thank you! I did notice an error in the documentation.
In the "Making a resource request on a user's behalf", the signature is incorrect.
Currently the signature is
yOahq5m0YjDDjfjxHaXEsW9D+X0=but the correct value is actually
LFcYchQEwoMiyBs/x7jO+69CxKo=That could trip up folks. Thanks again.
[1] https://dev.twitter.com/docs/auth/oauth
I believe the signature is correct. On my machine I did
and got
yOahq5m0YjDDjfjxHaXEsW9D+X0=as expected.Hope this helps.
I have my application with correct consumer key and secret but still showing me exception as..
09-22 20:15:09.112: ERROR/in Main.OAuthLogin(509): 401:Authentication credentials (https://dev.twitter.com/docs/auth) were missing or incorrect. Ensure that you have set valid conumer key/secret, access token/secret, and the system clock in in sync.
09-22 20:15:09.112: ERROR/in Main.OAuthLogin(509): <?xml version="1.0" encoding="UTF-8"?>
09-22 20:15:09.112: ERROR/in Main.OAuthLogin(509):
09-22 20:15:09.112: ERROR/in Main.OAuthLogin(509): Desktop applications only support the oauth_callback value 'oob'
09-22 20:15:09.112: ERROR/in Main.OAuthLogin(509): /oauth/request_token
09-22 20:15:09.112: ERROR/in Main.OAuthLogin(509):
the code snippet is as follow..
void OAuthLogin() {
try {
twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer(consumerKey, consumerSecret);
requestToken = twitter.getOAuthRequestToken(CALLBACKURL);
String authUrl = requestToken.getAuthenticationURL();
this.startActivity(new Intent(Intent.ACTION_VIEW, Uri
.parse(authUrl)));
} catch (TwitterException ex) {
Toast.makeText(this, ex.getMessage(), Toast.LENGTH_LONG).show();
Log.e("in Main.OAuthLogin", ex.getMessage());
}
}
please help me.
Hi,
It's because your app is registered as a desktop client.
To overwrite callback URL, your app need to be registered as a browser client.
Try configuring a dummy callback URL (http://example.com/ or whatever you want) at
https://dev.twitter.com/apps/[appid]/settings > Callback URL
and your app will be recognized as a browser client.
Best,
Yes It worked for me.
Thanks
hi..i also have the same problem..
i too already insert the correct consumerKey and consumerSecret
i also filled the callback URL with dummy url but just could not get it work
here is my code
<?php
/*
author : n1colius (nikolius@gamatechno.com)
web : www.nikolius-luiso.web.id
*/
require("twitteroauth/twitteroauth.php");
session_start();
// The TwitterOAuth instance
$twitteroauth = new TwitterOAuth('JU7odvwZ08KqJIcXXXXX', 'vaZjICA9h1L7CvWkK7G8XXXXXX');
// Requesting authentication tokens, the parameter is the URL we will be redirected to
$request_token = $twitteroauth->getRequestToken('http://twit.nikolius-luiso.web.id/twitter_oauth.php');
// Saving them into the session
$_SESSION['oauth_token'] = $request_token['oauth_token'];
$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret'];
// If everything goes well..
if($twitteroauth->http_code==200){
// Let's generate the URL and redirect
$url = $twitteroauth->getAuthorizeURL($request_token['oauth_token']);
header('Location: '. $url);
} else {
// It's a bad idea to kill the script, but we've got to know when there's an error.
die('Something wrong happened.');
}
the $twitteroauth->http_code just keep returning '401' value not '200'
anyone have a solution?
Hi - I will like to say thank you a lot for the post. It was very helpful. After reading thoroughly the links you provided I finally realized the mistake I have been struggling with for 3 days now. Everything worked fine, except I need to single encode the request postBody and double encode the postBody within my base string. So now finally my signature is correct.
Weird problem, when I try to twitt some message with spaces, a 401 error raises, but if I twitt only letters (without spaces) the post success.
We are using the .NET function Uri.EscapeDataString(messageToPost)
Please verify whether the device DATE and TIME are up to date. If not, then it might cause problems with the access token.
I keep getting the "Something wrong happened" message, when i login with Twitter. This is because the time on server, where my application is running has a past time. (approx. 1 hour less than the usual timezone time).
Is there a way to overcome this issue? I don't have privileges to change time on server.
I have an app, it works with my account, but i register it with anouther user it gives a 401. with the other user it will read but not write, yet it is registered as read write.
The account that does not work is this one, JoJoMooo
Any ideas?
OK sorted, i began to think it must be something simple, I had set to read write, but did not recrearte token, Now i am getting a 403 error
I have an iOS app (with a couple of well-established libraries) that fails a call to request_token - and have been chasing this for days. Always a "401 Unauthorized" error. I also tried to create a new twitter app, use the OAuth Tool with it, and test the curl example from the tool. That fails. So the tool isn't much help if its own output fails.
I encounter the same problems as you. I can't use the OAuth tool for getting a Request Token, by calling the URL specified at https://dev.twitter.com/docs/api/1/post/oauth/request_token.
I'm also trying to build my own Twitter API in C++ and I get the following error "Failed to validate oauth signature and token" when I try to make an HTTP GET request with the oauth_* parameters in the query string to https://api.twitter.com/oauth/request_token.
Here is my base signature string:
And I make a GET request to the following URL after the oauth_signature is generated:
After following some of the troubleshooting tips at the top of this page and debugging my oauth_* params value generation code I can't find where the problem is I still get "Failed to validate oauth signature and token" and "401 Unauthorized" HTTP response code. and reason phrase.
Have you found a solution for making HTTP requests from the OAuth tool to the URL https://api.twitter.com/oauth/request_token that return "200 OK" and a valid request token?
The OAuth tool isn't capable of generating sample requests to oauth/request_token as the OAuth tool is for accessing API resource methods while utilizing a user context. oauth/request_token has no user context and you can't include an oauth_token as part of the request.
I encourage you to utilize Authorization-header based OAuth instead of querystring; querystring can complicate your encoding quite a bit.
By passing a URL-escaped URL on the query string, you are required to escape the value again in the signature basestring. (As above, so below).
My issue was as follows:
I've done an base64 encoding to the strDigest received from the HMAC-SHA1 algorithm, as described by section 3.4.2 of RFC 5849, https://tools.ietf.org/html/rfc5849#section-3.4.2:
But I also did an URL encoding to the base64Str by mistake, which was the second problem. This is what I did wrong, i.e.URL encoded the base64 string:
Removing the line above and replacing it with "OAuthSignature = base64Str;" solved my problem with doing an HTTP GET request by passing the oauth_* parameters by query string.
For now I can't use:
1) The HTTP "Authorization" header field
nor
2) The HTTP request entity-body
Because my HTTP client doesn't allow me to provide headers for the HTTP request, I can only see the HTTP response headers.
I hope the less preferred method - the HTTP request URI query - will work for my use cases, at least for the moment.
Thanks for the help.
Please!!! Help me!!! I have that error:
Undefined index: oauth_token
Error Type: E_NOTICE
Rendered Page: Click here to view contents able to be rendered
Source File: C:\wamp\www\Venetuits\www\twitteroauth\twitteroauth.php Line: 82
Line 77: if (!empty($oauth_callback)) {
Line 78: $parameters['oauth_callback'] = $oauth_callback;
Line 79: }
Line 80: $request = $this->oAuthRequest($this->requestTokenURL(), 'POST', $parameters);
Line 81: $token = OAuthUtil::parse_parameters($request);
Line 82: $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
Line 83: return $token;
Line 84: }
Line 85:
Line 86: /**
Line 87: * Get the authorize URL
Please!!! really!! I'm Venezuelan! and i want create an app for twitter!
Sorry i dont speak english very much!!! i try!!!
Please Again!!!
Please help!
I'm a newbie at this and this might seem like a silly question but how can I check the X-Warning HTTP header in the response to my request?
Thanks in advance!
It varies language-to-language and framework-to-framework. Most languages allow you to get at a response object representing the response -- that response object would include a hash of the HTTP headers sent back to you.
I'm struggling with OAuth. Anyone knows why it could work for UPDATE (to create tweets), but not for USER_TIMELINE. Returns 401 : Unathorized
I've used a C# code sample (http://www.codeproject.com/Articles/247336/Twitter-OAuth-authentication-using-Net) to post a tweet to my account using OAuth authentication AND IT WORKED.
Then I tried to reuse code to get user timeline and it keeps returning 401 error.
I've used your OAuth tool to compare signature created in my code and it was matched when I used same timestamp. Also, I don't have any X-Warning headers in my response.
I don't see anything wrong in my code, which makes me wonder if it's a problem in API?
Could you please have a look and let me know what's the problem.
Below is a final code for fetching timeline:
// oauth implementation details// unique request details// message api details//var status = "Updating status via REST API if this works. " + oauth_timestamp;//var resource_url = "http://api.twitter.com/1/statuses/update.json";// create oauth signaturestring oauth_signature;{}// create the request headerHave you considered using an OAuth library instead of trying to roll this yourself? OAuth can get pretty complicated, and an implementation like this can be a bit fragile. When you're building your signature base string, you need to URL encode the parameters and values separately while building the basestring, not all at the same time -- when you used the OAuth tool, were you able to compare the basestring you got from that tool with the basestring you're generating with this code?
@episod, can you please clarify the method of "URL encode the parameters and values separately while building the basestring".
Do you mean to Uri.EscapeDataString("key=value&") and concatenate
or Uri.EscapeDataString("key=value") + "&" and concatenate?
Thank you.
please help me.. i think my application not false but if i run my application there is an error message containing "couldn't find OAuth token from response" ..
my application is Mobile Twitter Client using J2ME-Based..
my code is
/*** @author rivan*/}}boolean isPost,String url,//Setup postData for signing.//Add the postData to the querystring.{{//Decode the parameters and re-encode using the oAuth UrlEncode method.}}{}else{}}}//Generate Signature}//Convert the querystring to postData{{}}String method,String url,String postData,}}}}{}}}}String url,String consumerKey,String token,String tokenSecret,String verifier,String xAuthUsername,String xAuthPassword,String httpMethod,String timeStamp,String nonce,{}{}//normalizedUrl = null;//normalizedRequestParameters = null;{{}{}}{}}}}}}}}}String url,String consumerKey,String consumerSecret,String token,String tokenSecret,String verifier,String xAuthUsername,String xAuthPassword,String httpMethod,String timeStamp,}}}}}{{}}}}}}// get byte values of the character// and turn them into percent encoding}}}}This code looks like it requires permissions for using xAuth -- does your application have those permissions?
how to get a permissions that? I've contacted the twitter in api@twitter.com can not help me .. I am tired of trying to send a request for permission to twitter .. Can you help me? please help me ..
thanks for you information
please help me.. how to get permission xauth for my application??i create my application for my thesis.. please help me..
I created twitter application ,when click on Authenticate user ,always get Oauth_token null.Please help me
Hey it looks like my API has been soft blacklisted. How do I go about correcting this or discovering why this happened? Any help would be greatly appreciated.
If you suspect this to be the case (what signals are you reading?), consult this FAQ entry for next steps:
I am developing an application for Java ME devices. I have the correct tokens/secrets, and I have a method for accurately generating signatures. I created the request headers using the setRequestProperty(String key, String value) method in the javax.microedition.io.HttpsConnection interface but when I try to perform an API call (like retrieving home_timeline.json), I get a HTTP 401 error with error code 135.
I tried adjusting my oauth_timestamps, but I still get the same error, only now the error code is 32.
I've tried everything but nothing changes.
Can someone help me out here????
My app broke when I had to migrate from Twitter API 1.0 to 1.1. Ended up finding out that I was missing this header in my POSTs:
Content-Type: application/x-www-form-urlencoded
+1 This fixed my issues too!
Ok, I am able to execute the statuses/home_timeline GET request with my current IDs and tokens, so I know they are correct and I know that I am able to create the correct OAuth signature. Having said that, I am attempting to update my Twitter status and I am getting an "Could not authenticate you" error. I'm building this little app with ColdFusion and this is my code for the call:
<cfhttp url="https://api.twitter.com/1.1/statuses/update.json" method="POST"><cfhttpparam type="header" name="Authorization" value='OAuth oauth_consumer_key="#OStruct.oauth_consumer_key#", oauth_nonce="#OStruct.oauth_nonce#", oauth_signature="#OStruct.oauth_signature#", oauth_signature_method="#OStruct.oauth_signature_method#", oauth_timestamp="#OStruct.oauth_timestamp#", oauth_token="#OStruct.oauth_token#", oauth_version="#OStruct.oauth_version#"'><cfhttpparam type="formfield" name="status" value="#status#"></cfhttp>I tried including all the oauth variables as header elements in the cfhttp, no go. I tried the status param as a type "body", no go. I'm still getting the same authentication error, yet I know the above oauth variables work because if they didn't, I would not be able to grab the home_timeline which I can. Can anybody help me figure out why I'm still getting this "Could not authenticate you" error?
Performing HTTP GETs in OAuth is a bit different than POSTs. I would verify that the underlying OAuth code you're using is generating the signature base string correctly. I would make sure that when you send status with spaces as %20, that your HTTP and OAuth code are in coordination and not overly zealous about re-encoding it again.
I just redid my tokens, did a GET successfully, did a POST unsuccessfully (same error). This is my signature base string that was created during my one attempt:
POST&https%3A%2F%2Fapi.twitter.com%2F1.1%2Fstatuses%2Fupdate.json&oauth_consumer_key%3DCONSUMERKEY%26oauth_nonce%3Dzed5ro2mwe9lc58aqd7zjen0sr7cxlp3%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1352328864%26oauth_token%3D***ACCESS_TOKEN%26oauth_version%3D1.0%26status%3DThis%2520is%2520a%2520test%2520tweet
Now I am assuming that the signature is generated correctly, because if it wasn't, I would not have been able to execute the GET successfully (it uses the same function and encoding mechanism). Is there something wrong in the base string?
How are you constructing your POST? Does it send the proper Content-Type and Content-Length headers that a POST should? Are you able to examine the request in transit and verify that your POST parameters are being sent correctly?
I can't recall if I sent you this response, but if I did again, I apologize.
Here's how I'm constructing my POST:
<cfhttp url="#twitterURL#" method="POST" throwonerror="yes"><cfhttpparam type="header" name="Authorization" value='OAuth oauth_consumer_key="#OStruct.oauth_consumer_key#", oauth_nonce="#OStruct.oauth_nonce#", oauth_signature="#OStruct.oauth_signature#", oauth_signature_method="#OStruct.oauth_signature_method#", oauth_timestamp="#OStruct.oauth_timestamp#", oauth_token="#OStruct.oauth_token#", oauth_version="#OStruct.oauth_version#"'><cfhttpparam type="header" name="Content-Type" value="application/x-www-form-urlencoded"><cfhttpparam type="formfield" name="status" value="#varStruct.status#"></cfhttp>I'm not getting a throw on error, but I am returning a 401 Unauthorized error in the HTTP header response of mimetype application/json. I don't know what I need to consider in the content-length - just the status message I'm trying to update? I tried that, and I tried type "url" instead of "formfield" for the status message but to no avail. I'm honestly lost on where I need to go from here.
I'm more interested in how ColdFusion is performing the POST -- you could be telling it to do everything right as far as you know and it still could be doing something wrong. I'm not very familiar with this style of coding and it seems like a very brittle & indirect way to go about interacting with the API.
I figured out the issue. The status cfhttpparam needs to be of type="body" and the value is the URL-encoded query string of the data:
Glad to hear you figured this out!
I have downloaded the latest api of twitter from git. When i login using the credentials of my twitter account. I am being redirected to my twitter homepage instead of redirecting to my return url.This is the Link
Hi I dont know if it is the right place, but, I am having big problems to resolve one issue with the oauth verification of my application (it was running for more than a year), the point is since 1 week ago, i am having big problems to get the request token, i checked and after some 401 errors generated by some changes from your side, the process is getting a 200 code (ok) but instead of receiving the request token, i receive an strange string (i havent deciphered!), My app is ASP classic,i checked it with http (original) and (https the same result), GET and POST the same.
Attached the log of the run : (Because no percentage permited here I replace it with X)
MSL in use Msxml2.ServerXMLHTTP.6.0
Host https://api.twitter.com
Authorization OAuth oauth_callback="httpX3AX2FX2Fwww.quenota.comX2FauthX2Ftwitterqueno.asp", oauth_consumer_key="xxxxxx", oauth_nonce="hola251574", oauth_signature="yyyyyyyyyyy", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1355017844", oauth_token="", oauth_version="1.0"
Status 200
EncodeUri of ResponseText is X1FXEFXBFXBFX08X00X00X00X00X00X00X03EXEFXBFXBFX0EXEFXBFXBFX20X00X00XD0XBFXEFXBFXBF3X0FX1EZXEFXBFXBFFXEFXBFXBFXEFXBFXBFXEFXBFXBFXEFXBFXBFQX22X08XC3XA0XEFXBFXBFXEFXBFXBFgXEFXBFXBFXEFXBFXBFXEFXBFXBFXDCX97XC9XA6XEFXBFXBFXEFXBFXBFXEFXBFXBFXEFXBFXBFFUX20XEFXBFXBFXEFXBFXBFIXEFXBFXBFXEFXBFXBFXEFXBFXBF6X07TgXEFXBFXBFXEFXBFXBFlXEFXBFXBF_XEFXBFXBFXEFXBFXBFXEFXBFXBF)XCFX9D_4X60XEFXBFXBFXEFXBFXBFXEFXBFXBFXEFXBFXBFXEFXBFXBFwX3DXEFXBFXBFXEFXBFXBFXEFXBFXBFXEFXBFXBFXEFXBFXBFX2FXC3X9BXEFXBFXBFXEFXBFXBFXEFXBFXBF)XEFXBFXBFXEFXBFXBFX60*ZXEFXBFXBFXD5X83XEFXBFXBFX03XEFXBFXBFXEFXBFXBFtXEFXBFXBFX2CX0FXEFXBFXBFXEFXBFXBFX00X00X00
if you want to watch the string just replace X by percentage and urldecode it.
THANKS for any help !!!
Hometimeline.json for version 1.0 with OAuth worked fine. But when I change to version 1.1 it does not work. Why?
I don't know where to ask this, so I thought this thread will be most appropriate.
I'm using the API to create an alternate form of creating user accounts for my website. I basically just need the API to convert a twitter user into a user on my website. That is all I require (apart from them interacting on my website once they are converted, but they will still always have to login using their twitter account). I've managed to create the application, got my consumer key, consumer secret, loaded it onto my site and when I click on the sign-in with twitter button, everything works (or so I assume). What I'm confused about is the need for an "access token" and "access token secret" , I don't understand what I need that for?
If somebody could explain it in layman's terms, because the documentation is very vague to me and I don't get what I need an access token and access token secret for.
Thanks
Hi, I´m working with VB.NET and I want to make authorized calls to Twitter's APIs. I obtained my access token like this https://dev.twitter.com/docs/auth/tokens-devtwittercom, because I just want to access the API from my own account. I allways obtain the same response, 401 error, not authorized. Can somebody help me?.
This is my code:
Dim oauth_timestamp As String = miOAuth.GenerateTimeStamp() 'create the time in seconds'generate my signatureDim oauth_signature As String = miOAuth.GenerateSignature(apiurl, _oauth_consumer_key, _oauth_consumer_secret, _oauth_token, _oauth_token_secret, _"GET", _oauth_timestamp, _oauth_nonce, _"", "")'configuro propiedades del objeto request)TryEnd TryAnd this is my request header:
Authorization: OAuth oauth_nonce="5552950", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1359535898", oauth_consumer_key="xxxxxxxxxxxxxxxxxxxxx", oauth_token="xxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx", oauth_signature="0uKDNswlUfs42XnUjxLuwkkmAW8%3D", oauth_version="1.0"
Content-Type: application/x-www-form-urlencoded
Thanks
التفويض: بروتوكول OAuth oauth_nonce = "5552950"، oauth_signature_method = "HMAC-SHA1"، oauth_timestamp = "1359535898"، oauth_consumer_key = "XXXXXXXXXXXXXXXXXXXXX"، oauth_token = "XXXXXXXXX-xxxxxxxxxxxxxxxxxxxxxxxx"، oauth_signature = "3D 0uKDNswlUfs42XnUjxLuwkkmAW8٪ "، oauth_version =" 1.0 "
نوع المحتوى: تطبيق / س-WWW-شكل urlencoded
شكرا
This works for a profile image:
http://api.twitter.com/1/users/profile_image/408669110?size=normal
This does not:
http://api.twitter.com/1.1/users/profile_image/408669110?size=normal
I am confused. Does this mean that someone did not yet turn it on yet for 1.1? Or does it mean http://api.twitter.com/1/users/profile_image/USERID?size=normal will continue to work?
Or does it mean that there is an entirely different URL for this?
There's no direct 1.1 equivalent of that method. You'll need to request the user object using user/show or users/lookup to obtain a profile image URL for a user.
Hi,
Today i noticed this is having a strange behavior :
https://api.twitter.com/oauth/authenticate?oauth_token=xxxxx
And, in the screen it says i will have access to Direct Messages, and i understood it is the same as
authorize except the access to DM, could your clarify pls.
And another question:
I changed all my stuff to 1.1, and all the REST to https, but i dont use https in my site, so the questions is, currently everything is working with https (twitter resources), except when it return to my app after oauth authorize where i have a normal callback http://my site, is it going to work after your turn on the switch in the near future ?