0

我关注 linqtotiwwter.codeplex.com 的演示 试图让演示 webformrtimeline 闲置,所以我为 DotNetNuke 模块编写了这段代码,当按下底部 btnAutorizar 以进行 beginauthorization 时,响应始终是 Error 401 Unauhtorized 。我将配置放入模块的设置中。

ConsumerKey:lcgG6BXQpwQtHSzwqWA ConsumerSecret:6MoV8PlLBktgVaAP5ezDYEHGMKcHGEDe8eDuk5mpas 和我在推特上的应用调用 dnnPrueba

我在代码中的错误是什么?,我还需要什么?请帮我!对不起我的英语!


public partial class ViewTwitterAndrea : PortalModuleBase    {         

private ConfiguracionTwitterAndrea configuracion;       

private WebAuthorizer wbAuthorizer;            

protected void Page_Load(object sender, EventArgs e)        {           

try            {                   

configuracion = new ConfiguracionTwitterAndrea(this.TabModuleId);                   

string consumerKey = configuracion.ConsumerKey;                   

string consumerSecret = configuracion.ConsumerSecret;                                        

if (string.IsNullOrEmpty(consumerKey) || string.IsNullOrEmpty(consumerSecret))                        
{  this.mvTwitterAndrea.SetActiveView(this.vwConfiguracion); }
else {                      
IOAuthCredentials objCredenciales = new SessionStateCredentials();                          
if (objCredenciales.ConsumerKey == null || objCredenciales.ConsumerSecret == null)                             
{                               
objCredenciales.ConsumerKey = configuracion.ConsumerKey;                                                              
objCredenciales.ConsumerSecret = configuracion.ConsumerSecret;   
}                 
wbAuthorizer = new WebAuthorizer {                                
Credentials=objCredenciales,  
PerformRedirect = authUrl => Response.Redirect(authUrl)      };                                  
if(!Page.IsPostBack){                         
wbAuthorizer.CompleteAuthorization(Request.Url);                                                         
}
if(string.IsNullOrEmpty(objCredenciales.ConsumerKey) || string.IsNullOrEmpty(objCredenciales.ConsumerSecret)){                                   
lblRegistrado.Text = "No estas autorizado aun";           
btnAutorizar.Visible = true; 
btnTweets.Visible = false;
}else if(wbAuthorizer.IsAuthorized){                 
lblRegistrado.Text = "Estas Autorizado.";     
btnAutorizar.Visible = false;                           
btnTweets.Visible = true;                 
}                         
this.mvTwitterAndrea.SetActiveView(vwAutorizacion);                                         
}}catch (Exception ex) {Exceptions.ProcessModuleLoadException(this, ex);     
}       
}

protected void BtnEnviar_Click(object sender, EventArgs e)        {             
ComunicacionTwitter objTwitter = new ComunicacionTwitter(this.TabModuleId);   
Status objStatus= objTwitter.ActualizarEstado(wbAuthorizer, this.txtEstado.Text);
}
protected void btnAutorizar_Click(object sender, EventArgs e) {    
try {               
wbAuthorizer.BeginAuthorization(Request.Url);         
}catch(Exception ex){ }     
}

protected void btnTweets_Click(object sender, EventArgs e)        {           
try  {       
wbAuthorizer = new WebAuthorizer    {               
Credentials = new SessionStateCredentials()     };
ComunicacionTwitter objTwitter = new ComunicacionTwitter(this.TabModuleId);               
var UltimosTweets = objTwitter.getHomeTimeLine(wbAuthorizer, intCantidadTweets);
foreach (var Tweet in UltimosTweets)                {                   
this.spnTweets.InnerHtml =    "<div class='twitterTweet'>" +    
"<div class='twitterUsuario'>Usuario " + Tweet.ScreenName + "</div>" + 
"<div class='twitterContenido'>" + Tweet.Text + "</div>" + 
"<div class='twitterFecha'>" + Tweet.CreatedAt + "</div>" +                   
"</div>";               
}   
this.mvTwitterAndrea.SetActiveView(this.vwTweets);            
}catch(Exception ex){    }     
}
}
}

** * ** * ** * *我还有一堂课

Class ConfiguracionTwitter{
public ConfiguracionTwitter(){} 
public IEnumerable<Status> getHomeTimeLine(WebAuthorizer auth,int intCantidadTweets) {               
twitterContexto= new TwitterContext(auth);           
var tweets =        
(from tweet in twitterContexto.Status                       
where tweet.Type == StatusType.Home                        
select tweet).Take(intCantidadTweets).ToList();           
return tweets;        
}
}
4

1 回答 1

0

“401 Unauthorized”表示您的应用程序无法通过 Twitter 进行身份验证。导致 401 的原因有很多。我编写了一个常见问题解答,其中列出了要检查的事项:

http://linqtotwitter.codeplex.com/wikipage?title=LINQ%20to%20Twitter%20FAQ&referringTitle=Documentation

顺便说一句,发布您的 OAuth 密钥会使您的应用程序不安全。您应该尽快在 Twitter 页面上访问您的应用程序并生成一组新密钥。

于 2012-08-10T19:45:05.687 回答