2013-07-08 4 views
1

권한이 없음 : 위해LinqToTwitter OAuth를 나는 LinqToTwitter 문서에있는 문서 다음있어

http://linqtotwitter.codeplex.com/wikipage?title=Implementing%20OAuth%20for%20ASP.NET%20Web%20Forms&referringTitle=Learning%20to%20use%20OAuth

사용자가 트위터에 내 C# 웹 응용 프로그램에 로그인 할 수 있도록합니다.

여기 내 코드의 나는 줄에서 HTTP 401을 받고 있어요 그러나

private WebAuthorizer auth; 
private TwitterContext twitterCtx; 

protected void Page_Load(object sender, EventArgs e) 
{ 
    IOAuthCredentials credentials = new SessionStateCredentials(); 

    if (credentials.ConsumerKey == null || credentials.ConsumerSecret == null) 
    { 
    credentials.ConsumerKey = ConfigurationManager.AppSettings["twitterConsumerKey"]; 
    credentials.ConsumerSecret = ConfigurationManager.AppSettings["twitterConsumerSecret"]; 
    } 

    auth = new WebAuthorizer 
    { 
    Credentials = credentials, 
    PerformRedirect = authUrl => Response.Redirect(authUrl) 
    }; 

    if (!Page.IsPostBack) 
    { 
    auth.CompleteAuthorization(Request.Url); 
    } 

    twitterCtx = new TwitterContext(auth); 

} 


protected void AuthorizeTwitterButton_Click(object sender, EventArgs e) 
{ 
    auth.BeginAuthorization(Request.Url);  
} 

: 여기

auth.BeginAuthorization(Request.Url);  

스택 추적 것 :

at LinqToTwitter.OAuthTwitter.WebResponseGet(HttpWebRequest webRequest) 
    at LinqToTwitter.OAuthTwitter.WebRequest(HttpMethod method, String url, String authHeader, IDictionary`2 postData) 
    at LinqToTwitter.OAuthTwitter.OAuthWebRequest(HttpMethod method, Request request, IDictionary`2 postData, String callback) 
    at LinqToTwitter.OAuthTwitter.AuthorizationLinkGet(String requestToken, String authorizeUrl, String callback, Boolean forceLogin, AuthAccessType authAccessToken) 
    at LinqToTwitter.WebAuthorizer.BeginAuthorization(Uri callback, Boolean forceLogin) 
    at LinqToTwitter.WebAuthorizer.BeginAuthorization(Uri callback) 
    at TwitterTest.Default.AuthorizeTwitterButton_Click(Object sender, EventArgs e) in c:\Users\agriffiths.SDASOL\Documents\Visual Studio 11\Projects\TwitterTest\TwitterTest\Default.aspx.cs:line 47 
    at System.Web.UI.WebControls.Button.OnClick(EventArgs e) 
    at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) 
    at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) 
    at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) 
    at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) 
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 

자격 증명은 모두이를 내 Twitter 응용 프로그램에 대한 ConsumerKey 및 ConsumerSecret이 설정되었습니다.

사용자를 어떻게 승인 할 수 있습니까?

답변

1

Twitter API가 HTTP 401 Unauthorized를 반환하는 데는 여러 가지 이유가 있습니다. 나는 401을 해결하는 항목이있는 LINQ to Twitter FAQ을 작성했습니다.

LINQ to Twitter Downloads 페이지에는 시도 할 수있는 WebFormsDemos 프로젝트가 있으며 다운로드 가능한 소스 코드가 포함 된 WebForms 데모도 있습니다.

+0

고마워요! 결국 그것은 설정되지 않은 CallbackURL과 앱을 통한 인증을 사용하지 못하도록하는 옵션의 조합으로 밝혀졌습니다. – Liath

+0

좋은 지적 - 여러 문제로 인해 문제가 발생할 수 있음을 나타 내기 위해 FAQ를 업데이트했습니다. –