トップ «前の日記(2012-10-02) 最新 次の日記(2012-10-04)» 編集

ヨタの日々

2001|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|

2012-10-03 :-(

_ 午前

0550 起床

0830 出勤

0900 検討

_ 午後

1300 検討

1700 退勤

_

1830 tumblrほげ

1930 “混とん”に飛びこめ! - NHK クローズアップ現代 途中で寝落ちした

2030 飯

2230 tumblrほげ

_ [tumblr][ruby]tumblr の like を reblog する

Android の tumblr アプリケーションをバージョンアップしたら reblog 出来なくなってしまった。tumblr へ質問を投げたんだが結局未解決。どうも私が使っている Android 2.1 がよくないようなんだが詳細不明。

reblog 出来なくても like は出来るので、スマホで like しておいた post をあとで reblog するだけの簡単なお仕事です。

環境

  • Microsoft Windows 7 64bit
  • cygwin
  • ruby 1.9.3p194

参考

準備

tumlife

tumblife を使う。

mitukiii.jp - Tumblr API v2 の Ruby ライブラリ “tumblife for ruby” 作りました

インストール

% gem install tumblife
tumblr API

tumblr API を使うためにキーをいくつか取得する。

アプリケーションの管理画面 に行ってテキトーに登録。callback はアプリケーションウェブページと同じにした。空っぽでもいいらしい。

OAuth Consumer Key と Secret Key をコピペする。

次に Consumer key を取得して OAuth 開発をはじめよう - Hatena Developer Center のコードを貰う。

コピペなどしてこんな。

#!/usr/bin/ruby

# -*- encoding: utf-8 -*-

# Consumer key を取得して OAuth 開発をはじめよう - Hatena Developer Center
# http://developer.hatena.ne.jp/ja/documents/auth/apis/oauth/consumer

require "rubygems"
require "oauth"
require 'pp'

CONSUMER_KEY = 'OAuth Consumer Key を書く'
CONSUMER_SECRET = 'Secret Key を書く'

consumer = OAuth::Consumer.new(
  CONSUMER_KEY,
  CONSUMER_SECRET,
  :request_token_path => 'http://www.tumblr.com/oauth/request_token',
  :access_token_path  => 'http://www.tumblr.com/oauth/access_token ',
  :authorize_path     => 'http://www.tumblr.com/oauth/authorize '
  # http://USER:PASS@proxy.example.jp:8888
  #:proxy => ENV['HTTP_PROXY']
)


# リクエストトークンの取得
request_token = consumer.get_request_token(
  :scope          => 'read_public,write_public'
)
puts "Access this URL and approve => #{request_token.authorize_url}"
print "Input OAuth Verifier: "
oauth_verifier = gets.chomp.strip

# アクセストークンを取得
r_token = OAuth::RequestToken.new(
  consumer,
  request_token.token,
  request_token.secret)

# リクエストトークンとverifierを用いてアクセストークンを取得
access_token = r_token.get_access_token(
  {},
  :oauth_verifier => oauth_verifier)

puts "token #{access_token.token}"
puts "secret #{access_token.secret}"

実行すると認証用URL が印字されるのでブラウザにコピペなどして URL を開く。

アプリケーションのアクセスを拒否するか許可するか訊かれるので許可する。

callback URL に飛ばされるので oauth_verifier= 移行をコピペする。

http://www.example.org/?oauth_token=XXXX&oauth_verifier=XXXX

先ほど実行したスクリプトが入力待ちなのでそこに oauth_verifier を貼り付ける。

アクセストークンが印字されるので ↓ のスクリプトへコピペする。

実行

#!/usr/bin/ruby

# -*- encoding: utf-8 -*-

require 'tumblife'

base_hostname = 'miwarin.tumblr.com'

Tumblife.configure do |config|
  config.consumer_key = 'OAuth Consumer Key を書く'
  config.consumer_secret = 'Secret Key を書く'
  config.oauth_token = 'access_token.token の値'
  config.oauth_token_secret = 'access_token.secret の値'
end

client = Tumblife.client
likes = client.likes
likes.liked_posts.each {|like|
  client.reblog(base_hostname, like.id, like.reblog_key)

  ## like を削除したいんだがやり方が分からん
  ## like.id は like 対象の post になるので like.id は自分のではない。
  ## 401: Not Authorized (Tumblife::NotAuthorized) になる。
#  client.delete(base_hostname, like.id)

}

like を取得して reblog する。

reblog したあとに like を削除したいんだが API ドキュメントにやり方が書いてない。