2016-09-21 6 views
0

플레이어 계정이 이메일 주소와 연결되어있는 클라이언트/서버 게임 (iOS 클라이언트, Java 서버)이 있습니다. 클라이언트는 각각의 로그인 SDK를 사용하여 Google, Facebook 및 Twitter에서 로그인 할 수 있습니다.Java 서버에서 Twitter OAuth 자격 증명 (이메일 포함)을 확인하는 방법

클라이언트가 잘못된 전자 메일 주소를 스푸핑하는 것을 방지하기 위해 oauth 토큰을 SSL을 통해 서버 측에 보내고 사용자의 자격 증명을 사용하여 실제로 전자 메일 주소를 소유하고 있음을 확인합니다.

Google 및 Facebook의 경우 토큰 유효성 검사 (및 관련 이메일 가져 오기)는 매우 간단한 REST 호출이었습니다. 그러나 트위터는 서명 된 요청을 작성해야하며 복잡하고 오류가 발생하기 쉽습니다. 다행스럽게도 오픈 소스 클라이언트 라이브러리 인 twitter4j를 사용하면 몇 줄의 코드에서이 작업을 수행 할 수있었습니다.

이 작업에 twitter4j를 사용하는 방법은 약간 까다 롭습니다. 여기서는 문서화하고 있습니다.

답변

1

이러한 수입이 필요합니다 : 당신은 트위터 API에 액세스 할 수 있도록 응용 프로그램을 등록 할 때

import twitter4j.Twitter; 
import twitter4j.TwitterFactory; 
import twitter4j.conf.Configuration; 
import twitter4j.conf.ConfigurationBuilder; 

, 그들은 당신에게 소비자 API 키와 iOS 앱을 식별하는 소비자 API 비밀을 제공합니다. 어떻게 든 Java 서버에서 사용할 수 있어야합니다. 자격 증명과

String accessToken = "myUs3rs0aUthAcc355t0k3n"; 
String accessTokenSecret = "sdflkjasdflkjasdlfkjasdlfkjasldkfjlasdkfjldf"; 

구성 twitter4j :

ConfigurationBuilder builder = new ConfigurationBuilder(); 
builder.setOAuthConsumerKey(consumerApiKey); 
builder.setOAuthConsumerSecret(consumerApiSecret); 
builder.setOAuthAccessToken(accessToken); 
builder.setOAuthAccessTokenSecret(accessTokenSecret); 
builder.setIncludeEmailEnabled(true); 
Configuration config = builder.build(); 
TwitterFactory factory = new TwitterFactory(config); 
Twitter twitter = factory.getInstance(); 

String consumerApiKey = "arglebarglearglebargle"; // oauth_consumer_key 
String consumerApiSecret = "tHiSisas3cReTc0nSUm3rAp1Keypr0v1d3Dbytw1tt3r"; 

는 그런 다음 iOS 앱에서 보냈 당신의 OAuth 인증 필요는 소스 코드에 직접 넣어 가장 쉬운 방법입니다

이제 Twitter 객체를 통해 Twitter API 호출을 만들 수 있습니다. 필자는 oauth 자격 증명을 확인하고 사용자의 전자 메일을 가져 와서 플레이어 데이터베이스와 비교하여 확인할 수 있도록 한 번 전화를 겁니다.

twitter4j.User user = twitter.verifyCredentials(); 
String email = user.getEmail(); 
...