LoginSignup
2
0

twitter-api-java-sdk (Twitter API v2) でツイートする

Last updated at Posted at 2023-01-15

Java から Twitter API にアクセスするときは、Twitter4J が定番です。
ただ、せっかく新しい Twitter API v2 とそれに対応した公式の twitter-api-java-sdk が出ていたので、今回はこちらを使ってみました。
その際の、ツイートするまでの手順とサンプルコードをまとめました。

必要な手順は以下の3つです。

  1. 開発者情報を登録
  2. "Client ID" と "Client Secret" を取得
  3. "Access token" と "Refresh token" を取得
  4. Twitter API Java SDK でツイート

開発者情報を登録

  1. Twitter Developers を開く
  2. 開発者情報(利用目的など)を入力 Ready to build something cool?
  3. 開発者契約(Developer Agreement)を承諾して、"Submit" をクリック Developer Agreement
  4. メールが送られてくるので、その中の "Confirm your email" をクリック Time to verify your email

"Client ID" と "Client Secret" を取得

  1. 適当なアプリ名(あとで変更可)を設定して、"Next" をクリック Name your App
  2. 値をメモして、"App settings" をクリック Here are your keys & tokens
  3. "User authentication settings" の "Set up" をクリック App details
  4. "Callback URL", "Website URL" (適当なURLで大丈夫)を設定して、"Save" をクリック App info
  5. "Client ID" と "Client Secret" をメモして、"Done" をクリック Here si your OAuth 2.0 Client ID and Client Secret

"Access token" と "Refresh token" を取得

1. サンプルプログラムをチェックアウト

git@github.com:YujiSoftware/twitter-api-java-sdk-sample.git

2. 先ほど取得した Client ID / Client Secret、設定した Callback URL を twtitter.properties に書く

TWITTER_OAUTH2_CLIENT_ID=xxxx
TWITTER_OAUTH2_CLIENT_SECRET=xxxx
TWITTER_OAUTH2_CALLBACK=https://xxxx

3. oauth を実行(OAuth.java

./gradlew oauth:run

OAuth.java の中で、スコープ(権限)を4つ設定しています

ほかのスコープが必要な時は、書き換えて再度実行してください。

4. メッセージ(with URL)が表示されて止まります。

Go to the Authorization URL and authorize your App:
https://twitter.com/i/oauth2/authorize?code_challenge=...
After that paste the authorization code here
>> 

以下の手順で、コードを貼り付けます。

  1. 表示されている URL ( https://twitter.com/i/oauth2/authorize?code_challenge=... ) にブラウザでアクセス
  2. "アプリにアクセスを許可" をクリック
  3. リダイレクトされるので、そのページの URL の code パラメータをコピー (code=xxxxxxxx の部分)
  4. 貼り付けて、Enter

5. 以下のメッセージが表示されるので、値をメモ

Access token: xxxx
Refresh token: yyyy (may be null)

Twitter API Java SDK でツイート

1. 先ほど取得した Access token / Refresh token を twitter.properties に設定
(Refresh token は、null なら設定不要)

TWITTER_OAUTH2_CLIENT_ID=xxxx
TWITTER_OAUTH2_CLIENT_SECRET=xxxx
TWITTER_OAUTH2_ACCESS_TOKEN=xxxx
TWITTER_OAUTH2_REFRESH_TOKEN=yyyy

2. tweet を実行 (Tweet.java

./gradlew tweet:run

これで、うまくいったら「Hello world!」とツイートされています!

Access Token の更新

上記で Access Token を発行していますが、これの有効期限は2時間です。
この時間を超えてツイートする場合、以下のいずれかの方法で Access Token を更新する必要があります。

  • 明示的に TwitterApi#refreshToken() を呼び出す
  • TwitterCredentialsOAuth2 のコンストラクタの第5引数 isOAUth2AutoRefreshTokentrue を設定しておく
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0