2012-01-31 2 views
3

Ricky의 Twitterizer example (일부 수정 사항이 있음)을 따르고 있지만 인증 요청을 보내려고하면 "401 Unauthorized"예외가 발생합니다. :Twitterizer- 원격 서버에서 오류를 반환했습니다 : (401) 승인되지 않음

{Twitterizer.TwitterizerException: The remote server returned an error: (401) Unauthorized. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized. 
    at System.Net.HttpWebRequest.GetResponse() 
    at Twitterizer.WebRequestBuilder.ExecuteRequest() 
    at Twitterizer.OAuthUtility.GetRequestToken(String consumerKey, String consumerSecret, String callbackAddress) 
    --- End of inner exception stack trace --- 
    at Twitterizer.OAuthUtility.GetRequestToken(String consumerKey, String consumerSecret, String callbackAddress) 
    at MyProject.Controllers.AccountController.Authenticate(String oauthToken, String oauthVerifier, String returnUrl) in C:\path\to\my\website\Controllers\AccountController.cs:line 78} 

내 고객 키와 고객 비밀번호 보유 개인 멤버 변수가 있습니다

: 나는 또한 로그인을 처리하는 컨트롤러가

// I obtain my consumer key and the consumer secret from the web config 
private static readonly string _twitterConsumerKey = WebConfigurationManager.AppSettings["TwitterConsumerKey"]; 
private static readonly string _twitterConsumerSecret = WebConfigurationManager.AppSettings["TwitterConsumerSecret"]; 

오류와 관련없는 일부 코드를 제거했습니다. 위 코드만으로도 예외가 발생합니다. 한 가지주의해야 할 점은 내 returnUrl은 비어 있습니다 (비록 내가 returnUrl도 제공하면 같은 일이 발생합니다). 그 밖의 모든 것은 괜찮아 보인다. HttpWebRequest은 다음과 같습니다 :이 문제를 일으킬 수있는 무엇에

Address = {https://api.twitter.com/oauth/request_token?oauth_callback=http://localhost:24465/Account/LogOn?returnUrl=} 

어떤 아이디어?

답변

8

dev.twitter.com에 로그인하여 응용 프로그램이 웹 응용 프로그램인지 다시 확인하십시오. 런타임에 '진짜'콜백을 제공 할지라도 웹 애플리케이션이 되려면 콜백 URL을 반드시 제공해야합니다.

참고로 등록 된 콜백 URL에는 'localhost'를 사용할 수 없지만 127.0.0.1을 사용할 수 있습니다.

+0

아, 잡았다! Ricky에게 감사드립니다. 웹 응용 프로그램으로 설정된 응용 프로그램을 가지고 있지 않았습니다. 변경을 수행하고 올바르게 실행할 수 있는지 확인합니다. 추신 내 데스크탑 서비스가 더 이상 동일한 서약 토큰을 사용할 수 없다는 뜻입니까? – Kiril

+0

예, 그게 문제였습니다 ... 고마워요! – Kiril

+1

데스크톱 응용 프로그램에서 웹 사이트의 소비자 토큰을 사용할 수 있습니다. 런타임시 콜백 URL로 "oob"을 입력하고 트위터는 핀 기반 인증을 사용합니다. –

관련 문제