appengine-web.xmlの設定
設定のポイントは2つ。
- sessionを使えるようにする
- consumerKeyとconsumerSecretは、System-propertyとして記述
以上を実現するには以下のように記述するとよい。
サーブレットでの記述方法
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<sessions-enabled>true</sessions-enabled> | |
<system-properties> | |
<property name="oauth.consumerKey" value="コンシューマーキー"/> | |
<property name="oauth.consumerSecret" value="コンシューマーシークレット"/> | |
</system-properties> |
下記に2つ載せますが、1つ目が最初に呼ばれるサーブレットで、2つ目はコールバックされるサーブレットです。1つ目では、
- twitterクラスのインスタンス
- requestToken情報
コールバックされるサーブレットでは、リクエストパラメータから「oauth_verifier」を受け取っておいてください(自動的に付与されます)。それを用いてAccessTokenを入手することになります。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//最初に呼ばれるサーブレットでの記述 | |
TwitterFactory factory = new TwitterFactory(); | |
Twitter twitter = factory.getInstance(); | |
request.getSession().setAttribute("twitter", twitter); | |
requestToken = twitter.getOAuthRequestToken("コールバックするURLを入れてください"); | |
request.getSession().setAttribute("requestToken", requestToken); | |
String url = requestToken.getAuthenticationURL(); | |
response.sendRedirect(url); | |
/* --------------------------------------------------*/ | |
// コールバックされるサーブレットでの記述 | |
Twitter twitter = (Twitter) request.getSession().getAttribute("twitter"); | |
RequestToken requestToken = (RequestToken) request.getSession().getAttribute("requestToken"); | |
String oauth_verifier = request.getParameter("oauth_verifier"); | |
PrintWriter pw = response.getWriter(); | |
pw.write("結果"); | |
pw.write(oauth_verifier); | |
try { | |
twitter.getOAuthAccessToken(requestToken, oauth_verifier); | |
twitter.updateStatus("Twitter4Jからテスト投稿"); | |
} catch (TwitterException e) { | |
e.printStackTrace(); | |
} | |
本サイトの内容は、下記のサイトを参考にさせていただきました。ありがとうございます。
0 件のコメント:
コメントを投稿