Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The remote server returned an error: (401) Unauthorized. Twitter oAuth

I am trying to make work twitter oAuth with twitterizer, but I am unable.

I am getting the following error:

The remote server returned an error: (401) Unauthorized.

When my callback url is a localhost.

If my callback url is oob, for the pin flow it works correctly.

Here is my code:

 public ActionResult LogOn(string returnUrl, bool? perm)
    {
        string consumerKeyTw = @"UF3F72XqfGShQs7juKMApA";
        string consumerSecretTW = "secret";
        OAuthTokenResponse requestToken = OAuthUtility.GetRequestToken(consumerKeyTw, consumerSecretTW, "http://localhost:58892/Twitterr/OAuth");

        // Direct or instruct the user to the following address:
        Uri authorizationUri = OAuthUtility.BuildAuthorizationUri(requestToken.Token);

        return new RedirectResult(authorizationUri.ToString(), false);
    }

I never get the token when I setup the callback url. On twitter I register my callback url localhost.

Am I missing somthing?

Any idea whats going on?

like image 469
elranu Avatar asked Jun 07 '11 14:06

elranu


2 Answers

Make sure your application is set as a web application on the development portal. For the callback address there, make sure you use an incorrect address (like your application's homepage), then specify the real address at runtime.

Web applications can use pin-based authentication, but desktop applications cannot use the web flow.

like image 75
Ricky Smith Avatar answered Oct 22 '22 14:10

Ricky Smith


I had this same problem and fixed it by adding a "Callback URL" in the Twitter App Settings page. I didn't have my domain name yet so I simply added a unused domain name like: http://www.website.com. The Twitterizer request call immediatly started working for me.

Fissh

like image 29
gadildafissh Avatar answered Oct 22 '22 15:10

gadildafissh