サンプルをもじっただけですが。。
はてなブログAtomPub - Hatena Developer Center
JavaのモジュールであるApache Abderaを使ったサンプル。OAuthかと思ったら、WSSEでの投稿です。 なお、投稿に際し認証が必要なので、APIキーが必要です。詳細設定の「APIキー」のところにAPIキーが書いています。
import java.util.Date import org.apache.abdera.Abdera import org.apache.abdera.protocol.client.AbderaClient import org.apache.abdera.ext.wsse.WSSEAuthScheme; import org.apache.commons.httpclient.UsernamePasswordCredentials; object AtomPubEntryPost { def main(args: Array[String]): Unit = { val username = ""; // ユーザーID val blogDomain = ""; // ブログのドメイン。独自ドメインも可能 val apiKey = ""; // 「詳細設定」のところから val abdera = new Abdera val abderaClient = new AbderaClient(abdera) WSSEAuthScheme.register(abderaClient, true); abderaClient.addCredentials("https://blog.hatena.ne.jp", null, "WSSE", new UsernamePasswordCredentials(username, apiKey)); val factory = abdera.getFactory // 記事の記述 val entry = factory.newEntry entry.setTitle("タイトル") entry.setUpdated(new Date()) entry.addAuthor(username) entry.setContent("本文") // 記事の投稿 val response = abderaClient.post(s"https://blog.hatena.ne.jp/$username/$blogDomain/atom/entry", entry) println("STATUS CODE : " + response.getStatus) } }
設定できるものは、
- タイトル
- 投稿時刻
- 投稿者
- 本文
URLはカスタマイズできないっぽい。あと、Twitter連携とかもこのままではできないっぽい。
記事の記述あたりで、Factoryのメソッドの使い方など。