paiza開発日誌paiza開発日誌IT/Webエンジニア向け総合求人・学習サービス「paiza」の開発者が、プログラミングやITエンジニアの転職などについて書いています。ITエンジニア向け総合求人・学習サービス「paiza」の開発者が、プログラミングやITエンジニアの転職などについて書いています。開発ネタ-Webサービス紹介Tweetこんにちは、吉岡([twitter:@yoshiokatsuneo])です。Facebook、LINE、TwitterなどのアカウントでログインするSNS連携認証は、簡単にログインできること、パスワード管理を一元化できることなどから多くのサービスで採用されています。v2.4により、仕様が変更されています。https://developers.facebook.com/blog/post/2015/07/08/graph-api-v2.4/特にSNS認証に関連した部分として、デフォルトで取得できるユーザ情報がidとnameのみになり、それ以外については明示的に指定しない限り取得できなくなっています。APIのバージョンはFacebookアプリケーションごとに別になっており、作成された時期によってバージョンが異なるようです。そのため、以前は動いていたコードが、APIキーを変えたら動かなくなった、という問題が発生します。ここでは、この問題の概要と対応策について説明します。Exploreを使うと確認できます。v2.3の場合は、E-mailアドレスなど多くの情報が取得できていました。"id"のみ取得できるようになっています。fieldsパラメータで"me?fields=email"のように指定することでE-Mailアドレスも取得できます。主要な公開情報の取得は、"me?fields=..."のように指定できます。APIの詳細についてはこちらで確認いただけます。現時点で、v2.3時代に作ったAPIはすぐには無効にはなりませんが、古いAPIについては、新しいAPIがリリース後2年で終了します。2年が経過した時点で、v2.3ベースのAPIについても強制的にv2.4ベースのAPI呼び出しとして扱われます。APIのサポート期間は以下で確認できます。APIとして実装されていますが、実際のアプリケーション開発では何らかのフレームワークを利用することが多いと思います。ここでは以下のような利用方法での対応を記載します。Rails(Omniauth)Node.js(Passport-facebook)APIの直接利用APIを直接利用する場合、URLのパラメータで以下のようにフィールドを指定します。SDKではAPIのエンドポイントでパラメータを指定します。Rails(Omniauth)での利用Omniauthでは、v2.1.0でデフォルトでname,emailフィールドが含まれるように対応予定となっています。Github上の最新コミットでは7月19日にmasterブランチに反映されています。それ以前のバージョンでは、以下のようにfieldsを指定します。http://stackoverflow.com/questions/31503090/facebook-oauth-is-not-returning-email-in-user-info/31554071#31554071Node.js(Passport-facebook)での利用Node.js用の認証ライブラリPassport-facebookを利用する場合、StrategyクラスのprofileFieldsで取得するフィールドを指定します。},なお、上記対策を行わなずにE-Mailアドレスを利用した場合、以下のようなエラーが発生します。v2.4のリリースに伴う、Facebook認証でメールアドレスが取得できなくなる問題と、その対応方法について説明しました。v2.4しか利用できません。v2.3以前のAPIを既に作成して利用している場合は2年間は利用できますが、直前・直後であわてないように、また新しいフレームワーク等は最新のAPIを前提とすることになると思いますので早めに対応されることをお勧めします。paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。「paiza転職」は、自分のプログラミング力が他社で通用するか(こっそり)腕試しができる、IT/Webエンジニアのための転職サービスです。プログラミングスキルチェック(コーディングのテスト)を受けて、スコアが一定基準を超えれば、書類選考なしで複数の会社へ応募ができます。スキルチェックだけ、という使い方もできます。転職を考えていない方でも、自分のプログラミングスキルを客観的に知ることができますので、興味がある方はぜひ一度ご覧ください。paiza転職をご利用いただいている企業の人事担当や、paiza転職を使って転職を成功した方々へのインタビューもございます。こちらもぜひチェックしてみてください。記事内に記載している情報は、記事公開時点でのものとなります。reserved.引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。