Ruby - Tumblr でテキスト投稿!

Updated:


Ruby で Tumblr へテキスト投稿する方法についての記録です。

0. 前提条件

1. RubyGems ライブラリ tumblr_client のインストール

RubyGems ライブラリ tumblr-client が未インストールなら、インストールしておく。

$ sudo gem install tumblr_client

2. Ruby スクリプトの作成

以下のように作成した。

単純に各種キーを設定後、インスタンス化して実行するだけである。
(コマンドラインの第1引数にタイトル、第2引数に投稿する内容を指定して実行すると、投稿できる。投稿内容の改行は \n を指定する)

File: tumblr_text.rb

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#! /usr/local/bin/ruby
# coding: utf-8
#=タイトル、内容を引数で与えて Tumblr にテキスト投稿する
#
# date          name            version
# 2017.01.03    mk-mode         1.00 新規作成
#
# Copyright(C) 2017 mk-mode.com All Rights Reserved.
#---------------------------------------------------------------------------------
# 引数 : 第1 - タイトル
#        第2 - 内容
#        ( 半角スペースが存在する場合は "" で括る。改行は \n を使用する )
#---------------------------------------------------------------------------------
#
require 'tumblr_client'

class TumblrText
  # Tumblr API Keys
  CONS_KEY = "<Consumer Key>"
  CONS_SEC = "<Consumer Secret>"
  ACCS_KEY = "<Access Token>"
  ACCS_SEC = "<Access Token Secret>"
  SITE = "<your_site>.tumblr.com"

  def initialize(args)
    @title, @body = args[0], args[1].gsub(/\\n/, "\n")
    Tumblr.configure do |config|
      config.consumer_key       = CONS_KEY
      config.consumer_secret    = CONS_SEC
      config.oauth_token        = ACCS_KEY
      config.oauth_token_secret = ACCS_SEC
    end
    @client = Tumblr::Client.new
  end

  def exec
    @client.text(SITE, {title: @title, body: @body})
  rescue => e
    $stderr.puts "[#{e.class}] #{e.message}"
    e.backtrace.each { |tr| $stderr.puts "\t#{tr}" }
    exit 1
  end
end

if __FILE__ == $0
  exit if ARGV.size < 2
  TumblrText.new(ARGV).exec
end

3. Ruby スクリプトの実行

第1引数にタイトル、第2引数に投稿内容を指定して実行する。

$ ./tumblr_text.rb TEST "これはテストです。\n(管理者)"

4. 確認

Tumblr サイトにアクセスし、投稿できていることを確認する。

参考サイト


今回はテキスト投稿のみでしたが、画像投稿をしたり、投稿した一覧を取得したりも容易にできます。

以上。





 

Sponsored Link

 

Comments