Twitter4Jで画像アップロードする方法を知りたいです、とコメントを頂きました(^^)
ということで早速調べてやってみました。
補足
今回のようなものを自分が調べる場合ですが、だいたい
- まずはググる(googleで検索)
- 良さそうな情報があったらコード読む
- コードに出てくるクラスをJavaDocで調べたりして理解する
Twitter4JのJavaDocは以下URLのページから利用Verのものを辿れます
http://twitter4j.org/ja/javadoc.html
- 他に良い方法がないかググる、またはJavaDocを読んでいく
ですかね(^^;ありきたりですが…。
Twitter4Jの場合、メーリングリストがあったり、StackOverflow辺りでも情報がたくさんあるので、より良い方法を探していくには十分な情報があります。
あとTwitterでつぶやくと助け船が出たりするかも…(笑)
今回のようにブログでコメントもらうのも自分としてはありです。返信は遅いかもですが(^^;
画像のアップロードを調べるとImageUploadを利用してできるようですが、StatusUpdateクラスが持つmediaメソッドを利用することもできるようです(メーリングリストの情報にて)。今回はこちらを選びました。
package com.mycompany.makimakibot;
import java.nio.file.Path;
import twitter4j.StatusUpdate;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.Status;
import java.io.File;
import java.nio.file.FileSystems;
import java.nio.file.FileSystem;
Twitter4Jで画像アップロード
public class App
{
public static void main( String[] args ) throws TwitterException
{
Twitter twitter = new TwitterFactory().getInstance();
FileSystem fs = FileSystems.getDefault();
Path path = fs.getPath("C:\\temp\\makimaki.jpg");
File file = path.toFile();
Status status = twitter.updateStatus(
new StatusUpdate("Here is one of my favorite photo.").media(file));
System.out.println(status.getCreatedAt());
}
}
ここではサンプルなので例外をthrowしちゃってますが、本来はハンドリングして下さい(^^;
画像の読み込み方法も色々ありますが、NIO2と呼ばれるJDK7で追加された新しいファイル操作を利用するのが良いと去年JJUGで学んだので使っています。NIO2は
辺りがわかりやすく、いつも参考にさせてもらっています。
ということで、実行してみます。今回は前回アドバイスもらったのでテスト用(?)アカウントでつぶやいてみました。
かわいい(*´Д`)
ちゃんと画像が送れてます(^^)