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

elranu picture elranu · Jun 7, 2011 · Viewed 13.8k times · Source

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?

Answer

Ricky Smith picture Ricky Smith · Jun 7, 2011

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.