2013-08-09 2 views
3

Linq2Twitter를 사용하여 ServiceStack으로 작성된 REST API 내에서 Twitter API 호출을 만들고 싶습니다.ServiceStack API를 사용하여 Linq2Twitter 및 캐시 된 OAuth 토큰 사용

나는 다음과 같은 정보가 있습니다

  • ConsumerKey
  • ConsumerSecret을
  • 사용자가 사이트에 우리의 응용 프로그램을 인증하는 경우에서의 OAuth 토큰 캐시
  • OAuth를 TokenSecret 사용자가 우리의 응용 프로그램을 인증 할 때의 캐시 사이트에서

이 인포메이션을 사용하여 TwitterContext를 어떻게 만듭니 까? 이온을 사용하여 API 호출을 할 수 있습니까? 설명서를보고 있는데 WebForm, MVC, Desktop 예제를 볼 수 있지만 현재 사용 사례는 없습니다. 토큰/토큰 비밀이 나쁜 경우 사용자를 권한 부여 페이지로 리디렉션하려고하므로 WebForm/MVC를 사용할 수 없다고 생각합니다. 필자는 데스크톱 예제를 살펴 보았고 핀 인증을 사용합니다.이 중 하나를 사용할 수 있다고는 생각하지 않습니다.

본인은 이러한 값을 캐시 한 후에 사용자가 액세스 권한을 취소하면 토큰/토큰 비법이 잘못 될 수 있음을 이해합니다. 따라서 실패 할 경우 확인하고 아무 작업도하지 않아도됩니다.

답변

3

이 질문에 정확히 같은 것이 아니라, 권한 부여의 개념은 당신에게 흥미로운 일이 될 수 있습니다

How to use Linq to Twitter inside a web service?

는 기본적으로,이 같은 자격 증명 속성에 값을 할당, 권한 부여를 인스턴스화 할 :

var auth = new SingleUserAuthorizer 
    { 
     Credentials = new SingleUserInMemoryCredentials 
     { 
      ConsumerKey = ConfigurationManager.AppSettings["twitterConsumerKey"], 
      ConsumerSecret = ConfigurationManager.AppSettings["twitterConsumerSecret"], 
      TwitterAccessToken = ConfigurationManager.AppSettings["twitterAccessToken"], 
      TwitterAccessTokenSecret = ConfigurationManager.AppSettings["twitterAccessTokenSecret"] 
     } 
    }; 

그런 다음, 다음과 같이 당신의 TwitterContext를 인스턴스화 :

var ctx = new TwitterContext(auth); 

이 경우 특정 권한 부여 프로그램은 SingleUserAuthorizer이지만 원래 자격 증명을 가져 오는 데 사용한 것과 동일한 권한 부여 프로그램을 사용할 수 있습니다. 트위터에 대한 4 개의 자격 증명과 LINQ를 모두 제공하면 사용자가 트위터에서 권한 부여를 재 지정하지 않습니다.

+0

내 앱이 단일 사용자 앱이 아니더라도 'SingleUserAuthorizer'를 사용할 수 있습니까? 또한 액세스 토큰과 비밀이 여전히 유효한지 (그리고 사용자가 액세스를 취소하지 않았는지) 확인하는 방법이 있습니까? – niltz

+0

SingleUserAuthorizer는 그 예입니다. 초기 승인에 사용한 것과 동일한 권한 부여기를 사용할 수도 있습니다. 열쇠는 네 가지 자격 증명 모두를로드하는 것입니다. Account/VerifyCredentials (https://linqtotwitter.codeplex.com/wikipage?title=Verifying%20Credentials&referringTitle=Managing%20Accounts) 쿼리를 수행하여 애플리케이션이 아직 승인되었는지 확인할 수 있습니다. –

+0

@JoeMayo 나는 특별한 문제가있다. OAuth 대화 상자를 제공하는 PHP 코드가 있으며이를 통해 로그인합니다. 그 후에 oauth 토큰과 oauth 토큰 비밀이 데이터베이스에 저장됩니다. 이제는 1 시간 동안 자동으로 실행되는 C# 작업이 있습니다. 그 코드는 .net에 있고 linqtotwitter를 그것과 통합하려고합니다. 이제 내 문제는 linqtotwitter를 통해 사용자를 인증하는 것이 아니라, 이미 PHP 코드를 사용하여 사용자를 인증하는 것이다. 그리고 singleuserauthorizer에서 모든 값을 하드 코딩하면 제대로 작동합니다. –