###リクエストトークンを取得し保存したい。
jersey2.x で、OAuth1.0aの認証を実施し、リクエストトークンを取得し保存する
RESTクライアントを作成したいと思っております。
(さらなる展望として、アクセストークンも取得し保存したい )
しかし、その実現コードがわかりません。サンプルをお持ちの方はおりませんでしょうか。
jerseyで実現できないのであれば、おすすめはないでしょうか。
###以下ソースコードを拾ってきてアクセストークンは取得できた
######流れ
・String authorizationUri = authFlow.start(); でPINコード取得URLを生成
・PINをSystem.inで入力
・System.out.println("rot007 accessTokne.getToken():" + accessTokne.getToken()); で
アクセストークンを表示
→リクエストはjerseyの中で実施してトークン取得のプロセスは準備されていない??
→API DOC 読みましたが、見つけられなかった
public class Main { private static final String CONSUMER_KEY = "ZI4xxxxxxxKmsWBxxPcxx3xxexx"; private static final String CONSUMER_SECRET = "1xOAWQWy9qx4CxxM1xxxxxxmZ85BY0oYxxxxxxxaxxFxx9xF4K"; private static final BufferedReader IN = new BufferedReader(new InputStreamReader(System.in)); public static void main(String[] args) { ConsumerCredentials consumerCredentials = new ConsumerCredentials(CONSUMER_KEY, CONSUMER_SECRET); OAuth1Builder oAuth1Builder = OAuth1ClientSupport.builder(consumerCredentials); //シグネチャはどこで生成するんだ。 // oAuth1Builder.version("1.0"); //oAuth version // oAuth1Builder.nonce("XXX"); //GoogleのAPI使ったSAMPLEロジックで設定値を生成 // oAuth1Builder.signatureMethod("RSA-SHA1"); //oAuthのシグネチャ生成方式 // oAuth1Builder.timestamp("timestamp"); //systemTime // oAuth1Builder.realm("eWallet"); //mobile,Full site 識別で使用するエリアだが未使用。 //リクエストトークンの取得方法が謎。 OAuth1AuthorizationFlow authFlow = oAuth1Builder.authorizationFlow( "https://api.twitter.com/oauth/request_token", "https://api.twitter.com/oauth/access_token", "https://api.twitter.com/oauth/authorize").build(); String authorizationUri = authFlow.start(); System.out.println("Enter the following URI into a web browser and authorize me:"); //PINコード確認できるURLが表示 System.out.println(authorizationUri); System.out.print("Enter the authorization code: "); String verifier = null; try { //標準入力のまちが発生: PINを入力 verifier = IN.readLine(); } catch (IOException ex) { System.out.println("root005"); throw new RuntimeException(ex); } System.out.println("root006"); AccessToken accessTokne = authFlow.finish(verifier); //アクセストークン取得 System.out.println("rot007 accessTokne.getToken():" + accessTokne.getToken()); }
###環境
Java8
Tomcat8
Eclipse mars
あなたの回答
tips
プレビュー