检查用户令牌是否有效使用Twitter Api

时间:2012-07-11 12:10:18

标签: c# asp.net twitter twitterizer

我有一个Asp.Net应用程序,它将在Twitter上发布推文。 我使用Twitterizer2来做这件事。

当用户首次使用该应用程序时,他将被重定向到twitter进行身份验证。 然后用户令牌将存储在我的应用程序中,这样用户将永远不会再被要求登录到Twitter。 这很好。

现在我想在发布之前验证用户令牌(即有效令牌是否有效)。有没有办法做这个验证?

3 个答案:

答案 0 :(得分:2)

您可以拨打Verify Credentials API

进行经过身份验证的调用

https://api.twitter.com/1/account/verify_credentials.json 

如果令牌是正确的,它将以HTTP 200 OK响应 - 如果不是,则将响应401.

答案 1 :(得分:1)

MoH的代码对我不起作用。这是我做的:

public bool IsTwitterAccessTokenValid(String access_token, String token_secret)
    {
        Twitterizer.OAuthTokens token = new Twitterizer.OAuthTokens();
        token.ConsumerKey = this.TwitterConsumerKey;
        token.ConsumerSecret = this.TwitterConsumerSecret;
        token.AccessToken = access_token;
        token.AccessTokenSecret = token_secret;

        TwitterResponse<TwitterUser> twitterResponse = TwitterAccount.VerifyCredentials(token);

        if (twitterResponse.Result == RequestResult.Success)
        {
            return true;
        }
        else
        {
            return false;
        }

    }

答案 2 :(得分:0)

我在另一个问题中找到了验证令牌的代码。 Twitterizer Api本身拥有验证用户令牌的方法。 代码如下:

Twitterizer.OAuthTokens token = new Twitterizer.OAuthTokens();
token.ConsumerKey = this.AppId;
token.ConsumerSecret = this.AppSecret;
token.AccessToken = userToken;
token.AccessTokenSecret = userSecret;

Twitterizer.TwitterResponse<Twitterizer.TwitterUser> response =
    Twitterizer.TwitterAccount.VerifyCredentials(token);

if (String.IsNullOrEmpty(response.ErrorMessage))
{
    //This is a valid token
}
else
{
    //Invalid token
}