WindowsXP + IE7 で Flash Player11 が動作しないことがあった。
そんな時は、旧バージョンにダウングレードすること。 11 → 10.3
別バージョンのFlash Playerはこちら
WindowsXP + IE7 で Flash Player11 が動作しないことがあった。
そんな時は、旧バージョンにダウングレードすること。 11 → 10.3
別バージョンのFlash Playerはこちら
四苦八苦して、ようやく認証処理とツイートまでたどり着いた。
#coding: utf-8 require 'twitter' require 'oauth' class OauthController < ApplicationController #--------------------------- # Twitter認証画面遷移 #--------------------------- def connect #リクエストトークン取得 consumer = OAuth::Consumer.new("コンシューマキー", "コンシューマシークレット", :site => "http://twitter.com") request_token = consumer.get_request_token(:oauth_callback => "http://コールバックURL/oauth/callback") #リクエストトークンをセッションに格納 session[:request_token] = request_token #Twitter認証画面へリダイレクト authorized_url = request_token.authorize_url redirect_to authorized_url end #-------------------------- # Twitter コールバック処理 #-------------------------- def callback #リクエストトークン取得 request_token = session[:request_token] #HTTPパラメータ取得 oauth_verifier = params[:oauth_verifier] #アクセストークン取得 access_token = request_token.get_access_token(:oauth_verifier => oauth_verifier) #トークンとトークンシークレット取得 token = access_token.token token_secret = access_token.secret #アクセストークンをセッションに格納 session[:access_token] = access_token #Twitter投稿処理 twitter = Twitter::Client.new(:oauth_access => { :key => token, :secret => token_secret}) twitter.status(:post, "Twitter4R からのTweet。成功するかな?") end end
コツは、OAuth認証の仕組み。コンシューマキーとコンシューマシークレット。リクエストトークンやアクセストークンの概念と役割をしっかりと理解すること。
一番ハマッたのは、Twitter開発者のアプリ管理画面で、CallBack URL を設定しているのに、PINコードの画面に遷移してしまう現象。
consumer.get_request_token のところで、callback_url を設定しなければならない。なぜだかは不明。OAuth認証の仕様なのか、Ruby for OAuthの不備なのか?
リクエストトークンからアクセストークンを取得する部分や、Twitter::Client.new の方法。ドキュメントが少ない・・・。
bundle install する度に、わけの分からないところにフォルダが生成されて、必要なgemがインストールされる現象が起きた。
調べてみると何故だかいつの間に、.bundle/config という隠しフォルダができていた。
これを削除してみたら、今まで通りのデフォルトのgemインストールフォルダに bundle install が実行されていた。
なぜgem install のパスの設定ファイルができていたのかの原因は不明です。
どうしても、下記エラーが出てデバッグできない。
Uncaught exception: Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.
下記のライブラリをインストールしてみる。
gem install execjs gem install therubyracer
それでもダメ。仕方ないのでアップデートサイトで、NightlyBuild でアップグレードしてみる。
デバッガが無事に動作した。