GeekFactory

int128.hatenablog.com

Picasaアルバムに画像をアップロードするコード

Google Picasaウェブアルバムに画像をアップロードするバッチを書いています。Javaのコードはとても簡単ですが、クライアントライブラリを揃えるのに一手間掛かったのでメモします。

Eclipseで新しいJava Projectを作成します。

必要なライブラリを入手します。gdata-java-clientはMavenでは入手できないようです。

  • gdata-java-client のうち以下のもので十分です:
    • gdata-client-1.0.jar
    • gdata-core-1.0.jar
    • gdata-media-1.0.jar
    • gdata-photos-2.0.jar
  • guava-libraries
    • guava-r09.jar
  • JavaMail
    • mail.jar

あとは Developer's Guide: Java - Picasa Web Albums Data API — Google Developers の通りにコードを書くだけでアップロードできます。例えば、こんな感じです。

public class SingleImageUploader
{
  public static void main(String[] args) throws Exception
  {
    File imageFile = new File(args[0]);       //画像ファイル
    String title = imageFile.getName();       //タイトル
    String description = imageFile.getName(); //説明
    
    PicasawebService myService = new PicasawebService(SingleImageUploader.class.getName());
    myService.setUserCredentials(Credentials.USERNAME, Credentials.PASSWD);
    
    URL albumPostUrl = new URL(Credentials.ALBUM_URL);

    PhotoEntry myPhoto = new PhotoEntry();
    myPhoto.setTitle(new PlainTextConstruct(title));
    myPhoto.setDescription(new PlainTextConstruct(description));
    myPhoto.setClient(SingleImageUploader.class.getName());

    MediaFileSource myMedia = new MediaFileSource(imageFile, "image/jpeg");
    myPhoto.setMediaSource(myMedia);

    PhotoEntry returnedPhoto = myService.insert(albumPostUrl, myPhoto);
    System.out.println("uploaded as "+returnedPhoto.getId());
  }
}

motionのMySQL連携と組み合わせると面白いことができそうです。