2013-03-30 4 views
0

트위터에 등록한 '응용 프로그램'을 사용하여 트윗 할 수있는 응용 프로그램을 작성하려고합니다. 나는 TweetSharp을 사용하고 다음과 같이 내 TwitterService이 설정 얻을 시도 :.NET - PIN 또는 실제 콜백 URL없이 상태 (트윗)를 트위터로 업데이트 하시겠습니까?

public Twitter(string consumerKey, string consumerSecret) 
    { 
     this.twitterService = new TwitterService(consumerKey, consumerSecret); 
     OAuthRequestToken oAuthRequestToken = this.twitterService.GetRequestToken(); 
     Uri uri = this.twitterService.GetAuthorizationUri(oAuthRequestToken); 
     Process.Start(uri.ToString()); 
     OAuthAccessToken oAuthAccessToken = 
      this.twitterService.GetAccessToken(oAuthRequestToken); 
     this.twitterService 
      .AuthenticateWith(oAuthAccessToken.Token, oAuthAccessToken.TokenSecret); 
    } 

그것은 OAuthAccessToken 선에 도달 한 후 나에게 당신의 계정을 사용하도록 권한 부여 [내 응용 프로그램]로한다? 트위터 웹 사이트의 페이지 가짜 콜백 URL을 지정하기 전에 '사용자 인증'버튼을 클릭 할 때 내 사용자가 입력해야하는 PIN이 표시된 페이지가 표시되었습니다. 내가 가짜 콜백 URL을 추가 할 때 다음에, 해당 페이지로 이동하려고 할 것입니다 내 코드는 다음과 같은 오류와 함께 산산조각 날려 버릴 것입니다 :

The remote server returned an error: (401) Unauthorized.

내가 알고 싶은 것은 : 내가 필요없이 프로그래밍 방식 트윗 수 PIN을 입력하거나 합법적 인 콜백 URL을 가지고 있습니까?

답변

1

트윗은 사용자의 컨텍스트에서 보내야합니다. (Ref : POST statuses/update.) 따라서 앱은 트윗을 보내기 위해 사용자의 승인 (OAuth 액세스 토큰)을 받아야합니다. PIN 기반 인증이나 콜백 URL을 사용하지 않고 액세스 토큰을 얻을 수 없기 때문에 단순히 묻는 것만 수행 할 수는 없습니다.

그러나 앱을 시작할 때마다 사용자에게 PIN을 입력하라는 메시지가 표시되지 않게하려면 대답이 간단합니다. 유효한 액세스 토큰을 가지고 있으면 파일 (예 : 파일)에 저장합니다. 다음 번에 앱을 다시로드하십시오. 내 WinForms 응용 프로그램의 경우 .NET의 기본 제공 사용자 당 Settings 메커니즘을 사용하여 액세스 토큰 및 액세스 토큰 비밀을 저장합니다. 웹 응용 프로그램은 데이터베이스 또는 유사한 액세스 토큰을 사용하는 것이 더 나을 것입니다.

참고 : 이렇게하면 저장된 액세스 토큰의 유효성을 검사하고 더 이상 유효하지 않은 경우 인증 프로세스를 반복해야합니다. 이 목적으로 Twitter API 설명서에 GET account/verify_credentials 메서드를 사용하는 것이 좋습니다.

+0

내 앱이 Twitter를 사용하여 로그 메시지를 보낼 수 있기를 바랬습니다. 트위터 (http://www.psfk.com/2012/01/tweeting-plants-water.html)를 보내는 것들 장치의 인터넷에 대해 들어 보았습니다. 실제 사용자가 없으면 어떻게 도망 갈 수 있습니까? – lintmouse

+0

@dustmouse 그들은 그렇지 않습니다. http://www.botanicalls.com/archived_kits/twitter/이 페이지는 장치가 트윗을 보내기 위해 트위터 계정이 필요하다고 말합니다. –

+0

트위터 계정을 사용하는 것은 나를위한 쇼 스토퍼가 아닙니다. 실제로 사용자가 트윗을 보내기 위해 실제로 상호 작용해야하는 경우. – lintmouse