Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

OmniAuth Strategies The Phantom Pain

644 views

Published on

表参道.rb #5 で話した資料
http://omotesandorb.connpass.com/event/20289/

Published in: Technology
  • Be the first to comment

  • Be the first to like this

OmniAuth Strategies The Phantom Pain

  1. 1. @yimajo THE PHANTOM PAIN OmniAuth Strategies
  2. 2. https://stargzr.net 自己紹介 一人で株式会社キュリオシティソフトウェアをやっています 今城 善矩
  3. 3. https://stargzr.net StargazerというWebサービスをRailsで つくっています GitHub, Qiita, SlideShare, Stack Overflowの ★数的なものを全部 合計します
  4. 4. https://stargzr.net インタビューされてもいいよという人/組織を 探しています インタビューの数字(2015.9.27現在) • Pocketの後で見る数 255 • ツイート数 210 • はてぶ数 147 • Facebookいいね!数 290
  5. 5. 人が欲しいと思うものを作れ
  6. 6. https://stargzr.net 今週 Stargazerは Stack Overflowと 日本語版Stack Overflowの スコアも対応しました \(^o^)/
  7. 7. https://stargzr.net スコアってどうやって 取得してんの?
  8. 8. https://stargzr.net • OAuthを使っているサービスを利用してidと必要で あればaccess_tokenを取得 • 各サービスのAPIを呼び出して★的なものを取得
  9. 9. https://stargzr.net OmniAuthというOAuthを 抽象化してくれるgemが 超絶便利!!!!
  10. 10. https://stargzr.net 各サービス(provider)ごとの 違いはStrategyパターンでそれ ぞれのgemによって吸収される
  11. 11. https://stargzr.net Strategyに対応したgemの作り方は 細かくドキュメント化されていないの に登録されているものだけで 200個ぐらいある!!! https://github.com/intridea/omniauth/wiki/List-of- Strategies
  12. 12. https://stargzr.net 当然Stack Overflowも omniauth-stackexchange というgemがあっので 使ってみた!!!
  13. 13. _人人人人人人人_ > 突然の死 <  ̄Y^Y^Y^Y^Y^Y ̄
  14. 14. https://stargzr.net なぜエラー? • Stack OverflowはStack Exchangeアカウントが親に なっている • 例えばStack Overflowアカ ウントを使っていても、日本 語版Stack Overflowアカウ ントは有効化していなければ 例外が起きてた Stack Exchange 日本語版 Stack Overflow Stack Overflow 有効化無効化 例外
  15. 15. https://stargzr.net 安心して下さい
  16. 16. https://stargzr.net Pull Request出してマージ済みです \(^o^)/
  17. 17. https://stargzr.net ドキュメントがあんまり詳細じゃない のに200個もStrategy gemsがあると 中には適切な実装じゃないgemもある!
  18. 18. https://stargzr.net どういう対処が適切か
  19. 19. 認可画面表示 client_id scope redirect_uri state ID/PW 認可コード発行認可コード access_token要求 認可コード client_id client_secret redirect_uri access_token access_token 発行 連携リンクを クリック ID/PW入力
  20. 20. https://stargzr.net OmniAuthのStrategy作るとき • プロバイダのToken URLなどを仕込む • Request PhaseとCallback Phaseを設定 • レスポンスのJSONはプロバイダ毎に違うのでそれ 用に処理 https://github.com/intridea/omniauth/wiki/Strategy-Contribution-Guide
  21. 21. https://stargzr.net OmniAuthのStrategy作るときの 注意点まとめ • callback_phaseの例外はStandardErrorなら rescueされる • 独自の例外作る場合callback_phaseをoverrideし て独自の例外をrescueしてfail!メソッドを呼ぶ
  22. 22. https://stargzr.net 具体例 def callback_phase super rescue NotRegisteredForStackExchangeSiteError => e fail!(:user_is_not_registered, e) end
  23. 23. 宣伝 最近、iOSアプリ開発の技術メンター業務をしています • Swift/Objective-Cのコードレビューをします • 設計についてアドバイスします(GitHubやSkype)
  24. 24. クライアントの声を紹介 http://curiosity.co.jp/trenders/ こちらからは以上です \(^o^)/

×