2012-11-07 79 views
0

我一直在努力嘗試使最後4個小時工作,沒有任何工作。我一直在尋找榜樣的榜樣,但我嘗試過的一切都失敗了。Twitter API,試圖獲取我的訪問令牌時總是收到錯誤401

這不是我第一次實施oAuth(我已經成功實現了Google Drive和Dropbox),但是我無法獲取用於Twitter API的訪問令牌。

我可以做一個成功的請求來獲取請求令牌(和祕密)並將用戶重定向到Twitter網站。一旦用戶授權我的應用程序,我的回調網址被擊中,我檢索驗證者。

現在我應該發送驗證者並交換它的訪問令牌(和祕密)。

但是我的請求總是返回401 Unauthorized錯誤。我嘗試了很多東西,我不知道還有什麼可以嘗試的。對於該請求的代碼是下面的:

Uri uri = new Uri("https://api.twitter.com/oauth/access_token"); 

    OAuth.OAuthBase oAuth = new OAuth.OAuthBase(); 
    String nonce = oAuth.GenerateNonce(); 
    String timestamp = oAuth.GenerateTimeStamp(); 
    String parameters = ""; 
    String normalizedUrl = ""; 
    String signature = oAuth.GenerateSignature(uri, _consumerKey, _ConsumerSecret, requestToken, requestTokenSecret, "POST", timestamp, nonce, OAuth.OAuthBase.SignatureTypes.HMACSHA1, out normalizedUrl, out parameters); 

    StringBuilder authHeader = new StringBuilder(); 
    authHeader.AppendFormat("oauth_token=\"{0}\", ", requestToken); 
    authHeader.AppendFormat("oauth_consumer_key=\"{0}\", ", _consumerKey); 
    authHeader.AppendFormat("oauth_nonce=\"{0}\", ", nonce); 
    authHeader.AppendFormat("oauth_timestamp=\"{0}\", ", timestamp); 
    authHeader.AppendFormat("oauth_signature_method=\"{0}\", ", "HMAC-SHA1"); 
    authHeader.AppendFormat("oauth_version=\"{0}\", ", "1.0"); 
    authHeader.AppendFormat("oauth_signature=\"{0}\"", Uri.EscapeDataString(signature)); 

    ServicePointManager.Expect100Continue = false; 

    WebRequest request = HttpWebRequest.Create(uri); 
    request.Method = WebRequestMethods.Http.Post; 
    request.ContentType = "application/x-www-form-urlencoded"; 
    request.Headers.Add("Authorization", "OAuth " + authHeader.ToString()); 

    using (StreamWriter sw = new StreamWriter(request.GetRequestStream())) 
    { 
     sw.WriteLine("oauth_verifier=" + verifier); 
    } 

    WebResponse response = request.GetResponse(); 

隨着requestToken和requestTokenSecret是我在第一次請求之後接收的令牌。

生成簽名的oAuth助手類工作正常,我一直在成功使用它一段時間。

該請求有什麼問題,它總是給我一個401?

感謝

回答

0

好了,所以像我想知道爲什麼這是不工作,我結束了使用Tweetsharp,我有事情在幾分鐘之內完成。

相關問題