2012-10-24 66 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为空,你有什么想法吗?

回答