[ruby] hello! Tumblrする

  • 8
    Like
  • 0
    Comment
More than 1 year has passed since last update.

tumblrへらくがき画像を投稿するドロップレットみたいなのが欲しくて拾ってこようと思ったら意外となかったのでとりあえずコマンドラインで動くようにしてみた。
言語はなんでもよかったんですが、Rubyだとすごい便利なパッケージがあったのでRubyにしました。ただGitHubに上がってるってことは、ご本人の手での開発は停止なのかな?

Appを作ってOAuth tokenをもらう

もらうといっても、お金やメールのやりとりなんかはないです。ありがたいことにトークンをもらうサービスが公開されているので、サーバーすらいりません

  1. アプリケーションを作ります。http://www.tumblr.com/oauth/apps にアクセスし、必要事項を記入。

    こうもく にゅうりょく
    Application name 適当に。あとで変えられます
    Default callback URL http://gettumblraccesstoken.heroku.com/callback
  2. OAuth Consumer Key と Secret Key をメモる

  3. http://gettumblraccesstoken.heroku.com/callback にアクセスし、先ほどの OAuth Consumer Key と Secret Key を入力してSubmit。

まとめ:

  • OAuth Consumer Key を てにいれた!
  • Secret Key を てにいれた!
  • Access Token を てにいれた!
  • Access Token Secret を てにいれた!

rubyでテスト投稿スクリプトを作る

tumblifeというrubyのパッケージを使います。

https://github.com/mitukiii/tumblife-for-ruby

こちらに書いてある通りなんですが、まあ使うためにはまずインストール。ターミナルで

gem install tumblife

して、
その下のサンプルプログラムをコピペしてデスクトップにtest.rb
とでも保存します。

require 'tumblife'

Tumblife.configure do |config|
  config.consumer_key = YOUR_CONSUMER_KEY
  config.consumer_secret = YOUR_CONSUMER_SECRET
  config.oauth_token = YOUR_OAUTH_TOKEN
  config.oauth_token_secret = YOUR_OAUTH_TOKEN_SECRET
end

client = Tumblife.client

avatar = client.avatar('mitukiii.tumblr.com')
avatar.avatar_url # => http://24.media.tumblr.com/avatar_87fdfd3ea0e3_64.png

info = client.blog_info('mitukiii.tumblr.com')
info.blog.name # => mitukiii
info.blog.url # => http://mitukiii.tumblr.com/

dashboard = client.dashboard
dashboard.posts.each do |post|
  # ... do something
end

client.text('mitukiii.tumblr.com', :body => 'Hello, Tumblr!')
client.photo('mitukiii.tumblr.com', :data => Faraday::UploadIO.new('/path/to/image.png', 'image/png'))
  1. トークンの入力

    • YOUR_CONSUMER_KEY
    • YOUR_CONSUMER_SECRET
    • YOUR_OAUTH_TOKEN
    • YOUR_OAUTH_TOKEN_SECRET を、修正。ダブルクォーテーション忘れずに。
  2. URLの修正
    mitukiii を、ご自分のtumblrのアカウントに修正します。ドメイン指定してる時はわかんない。コメントの人が教えてくれるでしょう。

  3. まだ画像ないのでとりあえず25行目のclient.photo('〜はコメントアウト。

とりあえずコレでterminalで、ruby test.rbすると、Hello, Tumblr!が投稿されました。

次の目標

任意のタグ付けをしたいっす。2月だなー。