Question

I Follow the demo for linqtotiwwter.codeplex.com I tried to fallow the demo webformrtimeline so I wrote this code for a DotNetNuke Module when a push the bottom btnAutorizar for beginauthorization always the response is Error 401 Unauhtorized . there are the configuration that i put into the settings of my module.

ConsumerKey: lcgG6BXQpwQtHSzwqWA ConsumerSecret: 6MoV8PlLBktgVaAP5ezDYEHGMKcHGEDe8eDuk5mpas and my aplicattion in twitter call dnnPrueba

What is my mistake in the code??, what more i need? please help me! and sorry for my English!


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){    }     
}
}
}

********** And I have another class

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;        
}
}
Was it helpful?

Solution

A "401 Unauthorized" means that your application is unable to authenticate with Twitter. There are many things that can cause a 401. I've compiled a FAQ that will give you a list of things to check:

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

BTW, posting your OAuth keys makes your application insecure. You should visit your app on the Twitter page as soon as possible and generate a new set of keys.

Joe

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top