facebookの実装ぉぉ

前回でfacebookへの登録が終わったところで いよいよプロジェクトの方に組み込んでいく。

railsにはomniauthとかいう認証を行うためのオープンソースがあり これを使えば膨大な量のコードを記述する負担が大幅に減るらしく 今となっては当たり前のように使われてるらしい。

まぁそんなこと言われてもなんのこっちゃかわかってないし とりあえず言われた通りにやってみるしかないよねぇ。。

んで、参考にしたのはここ

オールイングリッシュで書かれてるので 理解するのに時間かかったけどなんとなく信用性は高そうなので 珍しく頑張ってみた!←

exampleに書かれてるステップに沿って進めばいいんかな・・。

まずgemfileに

gem 'omniauth-facebook'

を追加する

んー。わかりやすくdeviseの下に置いておこう。

スクリーンショット 2017-08-14 16.57.50.png

gemを追加したらいつものようにインストールする。

インストールに成功したら次のステップか。

ユーザのモデルにプロバイダとuidのカラムを追加しろと・・。

rails g migration AddOmniauthToUsers provider:string uid:string

んー内容を確認するとstringってことは文字列でそれぞれの項目が追加されて

Running via Spring preloader in process 9356       invoke  active_record       create    db/migrate/20170814081549_add_omniauth_to_users.rb

ログにもできたみたいなこと書かれたな。

rake db:migrate

これでデータベースに反映。

==  YYYYMMDDHHMM AddOmniauthToUsers: migrating ===============================

-- add_column(:users, :provider, :string)    -> 0.0062s -- add_column(:users, :uid, :string)    -> 0.0005s

==YYYYMMDDHHMM AddOmniauthToUsers: migrated (0.0069s) ======================

よし、問題なく完了。

 

あ、しまった。 ついでに名前やら画像とかも引っ張ってこれるようにしたらよかった。。 ってことで最初のコードの最後をprovider:string uid:stringから name:string image:stringに置き換えて再度繰り返しかぁ。。

んで、やってみたら見事に怒られた。。

Running via Spring preloader in process 9404

      invoke  active_record      conflict    db/migrate/20170814082600_add_omniauth_to_users.rb

Another migration is already named add_omniauth_to_users: /Users/yuki/Desktop/Mu-fun/db/migrate/YYYYMMDDHHMM_add_omniauth_to_users.rb. Use --force to replace this migration or --skip to ignore conflicted file.

えぇぇぇぇ・・。 コンフリクトしてるってことはこれじゃなかったんか。。

んー、じゃあ試しにファイルの方をいじってみるか。

表示されてるタイムスタンプを頼りにdbのディレクトリから探して開く

class AddOmniauthToUsers < ActiveRecord::Migration[5.0] def change add_column :users, :provider, :string add_column :users, :uid, :string end end

こんな感じのコードだったので同じように

add_column :users, :name, :string add_column :users, :image, :string

をendの上に追加。

でもって、もっかいmigrateしてみる。

あ、あれ・・。 なんも出てこんやん。。

これはちゃんとできてると思っていいんか・・?

せめてなんかしらの反応見せてくれよ とか思いながら長くなってきたので 続きは次回に。。

この記事をシェアする