http://twitter4j.org/en/code-examples.html-OAuth認証中に静的にTwitterPINを提供する方法。コード例では、PINがすでに使用可能な場合に提供する方法について説明しています。
私たちのアプリケーションはスタンドアロンのJavaアプリケーションであり、人間の介入なしにプロパティファイルを介してクレデンシャルを渡すことを好みます。
http://twitter4j.org/en/code-examples.html-OAuth認証中に静的にTwitterPINを提供する方法。コード例では、PINがすでに使用可能な場合に提供する方法について説明しています。
私たちのアプリケーションはスタンドアロンのJavaアプリケーションであり、人間の介入なしにプロパティファイルを介してクレデンシャルを渡すことを好みます。
Twitter から PIN コードが提供されます。
この例では、Twitter4J は、誰かが提供した URL ( requestToken.getAuthorizationURL()
10 行目) を Web ブラウザーにコピーし、ブラウザーを介してアプリケーションを承認すると想定しています。その後、ユーザーはブラウザーに表示された PIN コードをサンプル プログラムに書き込むことになっています。
この例には 2 つの大きな欠点があります。
oob
か?PIN コードを取得するには、人間の介入をシミュレートする必要があります。残念ながら、Twitter4J はこれを行うためのメソッドを取得していないようです (Javadoc にそのようなメソッドはありません)。そのため、次のプロセスを自分でコーディングする必要があります。
requestToken.getAuthorizationURL()
。oauth_token
" (既に持っている一時的な OAuth トークン)、" deny
" (アプリケーションを承認したくない場合に使用するタグ)、および " authenticity_token
" と呼ばれます。それらはすべて<input>
HTML タグにあります。それらを選んでください。POST oauth/authorize
これには、エンドポイントを使用する必要があります。URLはhttps://api.twitter.com/oauth/authorize?oauth_token=<your OAuth Token>
. リクエストの認証に関する Twitter のプロセスに従って、リクエストを認証する必要があります。投稿する内容は次のとおりです: " authenticity_token=<the form's "authenticity_token" parameter>&session[username_or_email]=<user's name or email>&session[password]=<the user's password in clear>
"。アプリを承認しない場合は&deny=<the form's "deny" parameter>
、本文メッセージに「 」を追加します。session[xxx]
プロパティ ファイルにクレデンシャル (パラメータ) を取得し、フォームで他のパラメータを選択したため (2. を参照)、問題はありません。oob
" の場合、PIN コードはOAuth PINと呼ばれます。<div id="oauth_pin">
HTMLタグのどこかにある4桁の数字です。それ以外の場合は、OAuth Verifierと呼ばれます。<div class="happy notice callback">
これは、 HTML タグ内にある URL に含まれています。この URL では、PIN はoauth_verifier
要求文字列の です。OAuth トークンのように見えます。私のプロセスの 2 番目と 4 番目のステップの Web ページの HTML コードを見てください。プロセスを理解することは非常に役立ちます。
今日は、Twitter4j ライブラリを使用して、ユーザーの介入なしで認証する方法を見つけようとしました。私は次のことを思いつきました:
ConfigurationBuilder conf = new ConfigurationBuilder();
conf.setOAuthConsumerKey(CONSUMER_KEY);
conf.setOAuthConsumerSecret(CONSUMER_KEY_SECRET);
conf.setOAuthAccessToken(TOKEN);
conf.setOAuthAccessTokenSecret(TOKEN_SECRET);
Twitter twitter = new TwitterFactory(conf.build()).getInstance();
ConfigurationBuilder を使用することで、自動認証できるようになりました。もちろん、それに応じて CONSUMER AND TOKEN キーの値を設定する必要があります。確認した方法は次のとおりです。
User user = twitter.verifyCredentials();
System.out.println("Successfully verified credentials of " + user.getScreenName());
お役に立てれば!