2012-10-24 65 views
0

我想發送私人消息到Twitter與我的web應用程序在asp.net mvc3。我在做與oauth授權,這裏是我的代碼:檢索userId併發送悄悄話與linqtotwitter

中的AccountController

:用戶被授權

 public ActionResult LogOn() 
    { 
     credentials.ConsumerKey = TwitterClient.ConsumerKey; 
     credentials.ConsumerSecret = TwitterClient.ConsumerSecret; 

     auth = new MvcAuthorizer { Credentials = credentials }; 
     auth.CompleteAuthorization(Request.Url); 
     if (!auth.IsAuthorized) 
     { 
      string callbackUrl = "http://127.0.0.1:31891/Account/CompleteAuth"; 
      Uri uri = new Uri(callbackUrl); 
      return auth.BeginAuthorization(uri); 
     } 
     return RedirectToAction("Index", "Home"); 
    } 

後,他重定向到行動CompleteAuth,我也得到了令牌和tokenSecret,這裏是這個動作的代碼:

public ActionResult CompleteAuth(string oauth_token, string oauth_verifier) 
    {   
     string AccessToken = oauth_token; 
     string AccessTokenSecret = oauth_verifier; 
     TempData["AccessToken"] = AccessToken; 
     TempData["TokenSecret"] = AccessTokenSecret; 
     return RedirectToAction("Tweeting","Home"); 
    } 

後,它重定向到家庭在行動啁啾,當我試圖讓帳戶及發送給他的直接消息:

public ActionResult Tweeting() 
    { 
     var auth = new MvcAuthorizer 
     { 
      Credentials = new InMemoryCredentials() 
      { 
       ConsumerKey = TwitterClient.ConsumerKey, 
       ConsumerSecret = TwitterClient.ConsumerSecret, 
       //OAuthToken = (string)Session["AccessToken"], 
       //AccessToken = Session["TokenSecret"] 
       OAuthToken = TempData["AccessToken"] as string, 
       AccessToken = TempData["TokenSecret"] as string 
      } 
     }; 
     var twitterContext = new TwitterContext(auth);         
     var message = twitterContext.NewDirectMessage(auth.UserId, "Hi ucef, cool to discuss with you" + DateTime.Now); 
     return View(); 
    } 

但是發生異常是因爲auth.UserId爲空,你有什麼想法嗎?

回答