사용자로부터 oath2.0 액세스 토큰 및 새로 고침 토큰을 얻은 후 이들을 사용하여 C# 및 java에서 PlusService의 인스턴스를 만드는 방법은 무엇입니까?
현재 BaseClientService.Initializer를 사용하고 있지만 익명의 응용 프로그램 토큰에서만 작동합니다. OAUTH2 프로세스에서 가져온 OAuth2Parameters 객체를 사용하여 더하기 서비스의 인스턴스를 만들고 싶습니다.토큰에서 PlusService의 인스턴스를 만드는 방법
1
A
답변
3
OAuth2Parameters는 인증 V1.7.0 베타 Google.Apis.Authentication의로
public class AuthenticatorImp : Google.Apis.Authentication.IAuthenticator
{
OAuth2Parameters parameters;
public AuthenticatorImp(OAuth2Parameters parameters)
{
this.parameters = parameters;
}
/// <summary>
/// Takes an existing httpwebrequest and modifies its headers according to
/// the authentication system used.
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public void ApplyAuthenticationToRequest(HttpWebRequest request)
{
if (parameters.TokenType == "Bearer" && parameters.TokenExpiry < DateTime.Now)
{
OAuthUtil.RefreshAccessToken(parameters);
}
request.Headers.Add("Authorization: Bearer " + parameters.AccessToken);
}
}
당신 자신의 구현으로 OATH2의 였는지를
OAuth2Parameters parameters = new OAuth2Parameters()
{
ClientId = CLIENT_ID,
ClientSecret = CLIENT_SECRET,
AccessCode = token,
RedirectUri = REDIRECT_URI //needed because of a bug
};
OAuthUtil.GetAccessToken(Request.Url.Query, parameters);
BaseClientService.Initializer init = new BaseClientService.Initializer { Authenticator = new AuthenticatorImp(parameters)};
PlusService service = new PlusService(init);
Person me = service.People.Get("me").Execute();
의 마지막 단계의 토큰을 누르고 있습니다. IAuthenticator 대신 HttpClientInitializer를 사용하십시오. https://developers.google.com/gdata/docs/auth/oauth : 도대체이 구글이 명확하게 모든 새로운 API도이 방법을 사용하지 않는 것이 명시 할 때 한 달 전에 게시 왜
public class ConfigurableHttpClientInitializer : IConfigurableHttpClientInitializer
{
OAuth2Parameters parameters;
public ConfigurableHttpClientInitializer(OAuth2Parameters parameters) {
this.parameters = parameters;
}
/// <summary> Initializes an Http client after it was created. </summary>
public void Initialize(ConfigurableHttpClient httpClient)
{
if (parameters.TokenType == "Bearer" && parameters.TokenExpiry < DateTime.Now)
{
OAuthUtil.RefreshAccessToken(parameters);
}
httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + parameters.AccessToken);
}
}
관련 문제
- 1. hazelcast 인스턴스를 만드는 방법
- 2. QWebFrame 인스턴스를 만드는 방법
- 3. 다른 형식의 인스턴스를 만드는 방법
- 4. System.IO.Stream 스트림의 인스턴스를 만드는 방법
- 5. 클래스의 인스턴스를 만드는 다른 방법
- 6. EntityDescriptor 클래스의 인스턴스를 만드는 방법
- 7. C에서 개체의 인스턴스를 만드는 방법 #
- 8. 종속 클래스의 인스턴스를 만드는 방법
- 9. 문자열의 인스턴스를 만드는 방법 VB.Net
- 10. Uri로 뷰의 인스턴스를 만드는 방법
- 11. 트위터의 인스턴스를 만드는 방법 :: 트위터의 인스턴스를 생성하는 방법 :: retweeted_by_user를 작성하려면
- 12. (OWIN) 토큰에서 사용자를 얻는 방법?
- 13. Json 매핑 예외가 START_ARRAY 토큰에서 인스턴스를 deserialize 할 수 없습니다.
- 14. RestTemplate : START_OBJECT 토큰에서 OBJECT 인스턴스를 deserialize 할 수 없습니다.
- 15. START_ARRAY 토큰에서 Task 인스턴스를 deserialize 할 수 없습니다.
- 16. START_ARRAY 토큰에서 내 패키지의 인스턴스를 역 직렬화 할 수 없습니다.
- 17. VALUE_STRING 토큰에서 java.util.ArrayList의 인스턴스를 deserialize 할 수 없습니다.
- 18. 다른 메서드에서 클래스의 인스턴스를 만드는 방법
- 19. Android - 활동의 여러 인스턴스를 만드는 방법?
- 20. 배열 값을 기반으로 새 인스턴스를 만드는 방법
- 21. JQueryTE 텍스트 편집기의 동적 인스턴스를 만드는 방법
- 22. 기본 문자 클래스의 인스턴스를 만드는 방법
- 23. 처리에서 클래스의 새 인스턴스를 만드는 방법
- 24. SMO를 사용하여 로컬 데이터베이스 인스턴스를 만드는 방법
- 25. 화면의 내용에서 NSImage의 인스턴스를 만드는 방법
- 26. asp.net에서 클래스의 인스턴스를 한 번만 만드는 방법
- 27. SDWebImageManager에 대해 다른 인스턴스를 만드는 방법
- 28. 티타늄, 같은 창문의 다른 인스턴스를 만드는 방법
- 29. 문자열 이름으로 클래스 인스턴스를 만드는 방법
- 30. 값이 있거나없는 클래스의 인스턴스를 만드는 방법
? csw = 1 – AndroidDev