Facebookで認証したりユーザー情報を登録したりしてみたかった
「Facebookで認証+アクセストークンを使ってユーザーの情報を取得して、
ユーザーが所得する学校や会社でグループを作って所属させる」
ということをやりたくて、JavaScriptやKoalaとか調べてたんだけど、
JavaScriptはFacebookごとログアウトするし、
Koalaがuse_ssl=メソッドがFaradayにありませんという旨のメッセージを吐いて動かないので、
OmniAuthで認証機能を作る - RuntimeError
FacebookのOAuth AccessTokenについて - blogですかい
あたりを見ながら、「Deviseはまだ自分にはややこしいから使いたくないな」と思って、
結局
と同じようにとりあえず単純な認証にしました。
その後、認証のときに取得できているアクセストークンを使ってfacebook上のデータにアクセスする部分を、KoalaからFBGraphに切り替えて30分くらいでコンソール上で学歴の取得まで確認できて少し萎えたというのが現状です。
raise request.env["omniauth.auth"].yaml_tag
の出力見てると、職歴と学歴はこれFBGRAphなしでもそのまま取れているのでは?という感じもありますが。
アクセストークンについてまだよく分かってない感じがするので、この次どうやって進めるかな、というのは、
[etc] FacebookのOAuthのアクセストークンについて - Study08.net 対シンバシ殲滅用人型機動兵器
あとで、こことかいろいろ読みながら考えようと思います。
だけど明日はとりあえず、ページネーションを、データベースから取ってきた項目の数が多かったら自動的に所定の数で表示を区切ってくれるという風にしか理解してないのが不安なので、その辺からチュートリアル読もうと思います。
あと、gitとかgitとかgitとか。
以下、いくつか、まとめ。
今更かい!というのはお約束です。未知の知というか。
binding.pryを使う
必要なgemをインストールする。
group :development,:test do
....
gem 'pry-rails'
gem 'pry-nav'
gem 'pry-doc'
gem 'pry-remote'
end
とGemfileに足してから
bundle install
処理を止めてデバッグしたい所に
binding.pry
と入れると、その箇所でローカルサーバ動かしているターミナルが
周辺のコードを表示しながら止まる。
変数の値を確認したりする。もう止めなくてよくなったらexitと入力すると処理が先にすすむ。
データベースに新しい項目を追加する
新しいマイグレーションを追加してテーブルを変更 - Ruby on Rails入門
既に生成してあるテーブルに対して、
新しい項目を追加したり、indexをつけたり、unique属性をつけたり、
既にmigrateしたモデルを変更するときは
rails generate migration xxx
をターミナルで実行して、
新しくmigrationファイルを作成。そのdb/migrate内にある{time_stamp}_xxxの中に
def change
add_index :users, :facebook_uid, unique: true
end
のように変更内容を書いて保存してから、
rake db:migrate
をする。RAILS_ENV=testのほうも忘れないようにする。
環境変数を設定する
恐ろしい話、一番最初は直にアプリケーションIDとか書いてました。