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