2013-03-05 :-(
_ [ruby][math]なぜ ruby には Math.radians と Math.degrees がないのか
こうですか分かりません。
Module Math
def radians(deg)
rad = deg * Math::PI / 180
end
def degrees(rad)
deg = rad * 180 / Math::PI
end
end
Python にはあるのに ( 9.2. math — Mathematical functions — Python v2.7.3 documentation )
_ [ruby][twitter]The Twitter Ruby Gem を使ってみた
環境
- Microsoft Windows 7 64bit
- cygwin
- ruby 1.9.3p385
参考
インストール
% gem install twitter
Twitter アプリ登録
dotinstall の説明を参考にして http://dev.twitter.com/apps/ からテキトーに設定しておく。
consumer_key とかも取得しておく。
consumer_key とかは Detail タブの「Recreate my access token」をクリックすると生成され、OAuth tool タブで確認できる。
アプリケーション
とりあえずRoute 477 のひとのをそのまま実行してみる。
consumer_key とかは自分のアプリのやつを書いておく。
require 'twitter'
require 'pp'
# ログイン
Twitter.configure do |config|
config.consumer_key = 'アプリのatoken'
config.consumer_secret = 'アプリのsecret'
config.oauth_token = 'ユーザのatoken'
config.oauth_token_secret = 'ユーザのsecret'
end
#自分のタイムラインの取得
#pp Twitter.home_timeline
#自分宛てのReplyの取得
# pp Twitter.mentions
#自分宛てのDMの取得
# pp Twitter.direct_messages
#発言する
Twitter.update("テストです。")
実行
/usr/lib/ruby/gems/1.9.1/gems/twitter-4.5.0/lib/twitter/response/raise_error.rb:21:in `on_complete': Error processing your OAuth request: Read-only application cannot POST (Twitter::Error::Unauthorized)
from /usr/lib/ruby/gems/1.9.1/gems/faraday-0.8.4/lib/faraday/response.rb:9:in `block in call'
from /usr/lib/ruby/gems/1.9.1/gems/faraday-0.8.4/lib/faraday/response.rb:63:in `on_complete'
from /usr/lib/ruby/gems/1.9.1/gems/faraday-0.8.4/lib/faraday/response.rb:8:in `call'
from /usr/lib/ruby/gems/1.9.1/gems/faraday-0.8.4/lib/faraday/request/url_encoded.rb:14:in `call'
from /usr/lib/ruby/gems/1.9.1/gems/faraday-0.8.4/lib/faraday/request/multipart.rb:13:in `call'
from /usr/lib/ruby/gems/1.9.1/gems/twitter-4.5.0/lib/twitter/request/multipart_with_file.rb:14:in `call'
from /usr/lib/ruby/gems/1.9.1/gems/faraday-0.8.4/lib/faraday/connection.rb:226:in `run_request'
from /usr/lib/ruby/gems/1.9.1/gems/faraday-0.8.4/lib/faraday/connection.rb:99:in `post'
from /usr/lib/ruby/gems/1.9.1/gems/twitter-4.5.0/lib/twitter/client.rb:81:in `request'
from /usr/lib/ruby/gems/1.9.1/gems/twitter-4.5.0/lib/twitter/client.rb:70:in `post'
from /usr/lib/ruby/gems/1.9.1/gems/twitter-4.5.0/lib/twitter/api/utils.rb:82:in `object_from_response'
from /usr/lib/ruby/gems/1.9.1/gems/twitter-4.5.0/lib/twitter/api/tweets.rb:129:in `update'
from /usr/lib/ruby/gems/1.9.1/gems/twitter-4.5.0/lib/twitter.rb:52:in `method_missing'
from twitter1.rb:25:in `<main>'
Read-only とあるので http://dev.twitter.com/apps/ アプリのページの settings にある Application type を Read and Write にする。
再度実行。
また同じエラーになった。
はて
ググる
ruby1.9.3: rubyでTwitter API - pandazx's blog
一度、Twitterアプリのアクセス権をread onlyにした状態で実行してしまったので、Error processing your OAuth request: Read-only application cannot POST (Twitter::Error::Unauthorized) が発生した。その後、アクセス権をread and writeにして実行したが、まだエラーが発生する。これを解消するには、get-twitter-oauth-token を再実行して新しいaccess tokenを取得、プラグラムを修正する必要がある。
あー
アプリの Detail に行って「Recreate my access token」をクリック。
トークンとかが作りなおされるので、トークンとかをスクリプトへコピペしなおして、再度実行
ok



