0

linqtotiwwter.codeplex.comのデモに従います。デモのwebformrtimeline を休ませようとしたので、beginauthorizationの下部のbtnAutorizarを押すと、常にエラー401Unauhtorizedという応答が発生したときにDotNetNukeモジュール用にこのコードを記述しました。モジュールの設定に入れた構成があります。

ConsumerKey:lcgG6BXQpwQtHSzwqWA ConsumerSecret:6MoV8PlLBktgVaAP5ezDYEHGMKcHGEDe8eDuk5mpasとTwitterでの私のアプリケーションは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 の原因となる可能性があるものはたくさんあります。チェック項目のリストを提供する FAQ をまとめました。

http://linqtotwitter.codeplex.com/wikipage?title=LINQ%20to%20Twitter%20FAQ&referringTitle=ドキュメント

ところで、OAuth キーを投稿すると、アプリケーションが安全ではなくなります。できるだけ早く Twitter ページでアプリにアクセスし、新しいキーのセットを生成する必要があります。

ジョー

于 2012-08-10T19:45:05.687 に答える