2012-07-11 112 views
0

我有一個將在twitter上發佈推文的Asp.Net應用程序。 我使用Twitterizer2來做到這一點。檢查用戶令牌是否有效使用Twitter Api

第一次當用戶使用該應用程序時,他將被重定向到Twitter以進行身份​​驗證。 然後用戶令牌將被存儲在我的應用程序中,以便用戶永遠不會再被要求登錄到Twitter。 這工作正常。

現在我想在發佈之前驗證用戶令牌(即有效令牌)。有沒有辦法做這個驗證?

回答

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 
} 
2

您可以到Verify Credentials API

電話撥打一個驗證調用

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

如果令牌是正確它將與HTTP 200 OK響應 - 或401,如果他們不。

+1

謝謝Terence。但是,我如何將usertoken(憑證)傳遞給Twitter進行驗證? – shajivk 2012-07-12 09:42:12

+0

使用你正在使用的庫來調用verify_credentials - 這將告訴你,如果一切正常。 – 2012-07-12 13:15:41

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; 
     } 

    } 
+0

幾乎相同的代碼,唯一不同的是你從響應中確定了成功或失敗的地方。無論如何,謝謝你指出。 – shajivk 2012-09-05 07:57:57

+0

是的,我複製了你的,因爲它不適合我,我修改它。沒有你的投入,對我來說會更麻煩。謝謝。 – 2012-09-06 20:31:40

相關問題