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;
}
}