Facebook APIバージョンのアップグレード手順(Rails OmniAuth)

スポンサーリンク
【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました

FacebookグラフAPIの v2.0 が2016/08/08で deprecation(非推奨)になるので、v2.1 かそれより新しい API バージョンにアップグレードして下さいね、というメールが Facebook から届きました。Rails で Devise + OmniAuth + omniauth-facebook で、Facebook による OAuth 認証を実装しているアプリケーションです。使っている gem の omniauth および omniauth-facebook をアップデートし、また Facebook の開発者ダッシュボードのページで API Version Upgrades の設定を行い、新しいバージョンの API 呼び出しを行うように修正しました。

Rails4 で Devise と OmniAuth で、Twitter/Facebook のOAuth認証と通常フォームでの認証を併用して実装 | EasyRamble
Rails4 にて Devise でユーザー登録・ログイン認証・認可の機能を追加 | EasyRamble

— 環境 —
Rails 4.2
Ruby 2.3

スポンサーリンク

omniauth, omniauth-facebook の gem を更新

以下ページあたりを読むと分かるが、以前の omniauth-facebook はバージョン指定なしの API エンドポイント URL を使っている。

Bind API version with omniauth-facebook version – Issue #190 – mkdynamic/omniauth-facebook – GitHub

今日時点(2016/08/01)での最新の omniauth-facebook(4.0.0)だと、エンドポイント URL が v2.6 に指定されています。

omniauth-facebook/facebook.rb at master ?? mkdynamic/omniauth-facebook – GitHub

ということで、まずは omniauth-facebook 及び omniauth の gem をアップデートしました。適宜 git でブランチを切って作業。

Gemfile

gem をアップデート。

これで omniauth (1.3.1), omniauth-facebook (4.0.0)と、最新バージョンにアップデートされた。

アプリケーション側のソースコード修正は、自分の今回の環境では必要ありませんでした。Facebook アカウント情報から取得したい情報が、デフォルトとは別途にある場合には、config/initializers/omniauth.rb で設定を行う。

config/initializers/omniauth.rb

詳しくは omniauth-facebook の README に書いてあります。

GitHub – mkdynamic/omniauth-facebook: Facebook OAuth2 Strategy for OmniAuth

必要であれば、適宜ソースコードの修正を行います。

Facebook 開発者ページで API Version Upgrades の設定

続いて Facebook 開発者ページでの設定を行う。前提として development, production 用と各々別の App ID でアプリケーションを登録しておいたほうが良いです。以下のページに移動。

すべてのアプリ – 開発者向けFacebook

1. まずは development 用(開発環境)の App ID のアプリケーションを選択
2. ダッシュボードの設定 – 詳細設定をクリック
3. API Version Upgrades の Upgrade All Calls を「はい」に変更して保存

Screen_Shot_2016-08-01_at_12_23_52

以上の変更を行った後に、ダッシュボードTOPに戻り、APIバージョンが「v2.1」となっていることを確認します。

Screen_Shot_2016-08-01_at_13_52_37

その後、development, staging 環境等での動作テストや RSpec テスト等が全て通ることを確認する。テストが全てOKであれば、production 環境にデプロイ後、Facebook 開発者ダッシュボードで production 用 App ID のアプリケーションを選択して、上記と同様の手順を行います。

Google Chrome のデベロッパーツールで、omniauth-facebook による OAuth ログインのための Facebook API 呼び出しが、以下の URL リクエストとなっていることを確認しました。

ちなみに、Facebook Graph API の最新バージョンは v2.7 です。omniauth-facebook で v2.7 を使いたい場合は、以下のように設定すれば大丈夫かと思う。これも README に書いてあります。

config/initializers/omniauth.rb

以上で Facebook API バージョンのアップグレード作業は終了。

Facebook から届いたメール内容 ‘New Developer Alert for YourApp’

Facebook から6月、7月に各々メールが2通届きまして、それぞれ以下の内容でした。念の為に訳とともに掲載しておきます。

YourApp has been making recent API calls to Graph API v2.0, which will reach the end of the 2-year deprecation window on Monday, August 8, 2016. Please migrate all calls to v2.1 or higher in order to avoid potential broken experiences.

We recommend using our new Graph API Upgrade Tool to see which of your calls are affected by this change as well as any replacement calls in newer versions. You can also use our changelog to see the full list of changes.

You can view this and other Developer Notifications related to your app, YourApp, in the App Dashboard.

 

訳)YourApp(あなたのアプリケーション)が最近 Graph API v2.0 への呼び出しを行っています。Graph API v2.0 は、2016/08/08(月曜日)に2年経過による非推奨となります。将来的な不具合を避けるために、全ての API 呼び出しを v2.1 またはそれより新しいものに移行してください。
我々は Graph API のアップグレードツールを使うことを推奨します。このツールを使うことで、あなたのどの API 呼び出しが、新しいバージョンへの置き換えと同様にこのアップグレードによって、影響を受けるかが分かります。また我々の全ての変更リストを確認するためにチェンジログを見ることもできます。
App ダッシュボードで、このメッセージ及びあなたのアプリケーション YourApp に関係のある他の開発者向け通知を確認できます。

To prepare for your app migrating to v2.1, we have released a new feature under API Version Upgrades in your app dashboard that helps you to upgrade your app before the August 8, 2016 deadline. This will prevent you from getting more notices like these, and automatically upgrades all of your app’s usage to Graph API v2.1.

The oldest supported version of the Graph API for YourApp is v2.0, which will be deprecated on Monday, August 8, 2016. If your app has been making recent API calls against v2.0, please migrate all calls to v2.1 or higher in order to avoid potential broken experiences.

We recommend using our new Graph API Upgrade Tool to see which of your calls are affected by this change as well as any replacement calls in newer versions. You can also use our changelog to see the full list of changes.

We encourage you to ask questions & give feedback in the Facebook Developer Community group, which is supported by our engineers who are ready to help.

You can view this and other Developer Notifications related to your app, YourApp, in the App Dashboard.

 

訳)API v2.1 への移行に準備するために、我々は API バージョンのアップグレードにおける特徴を公開しました。あなたの App ダッシュボードで確認でき、これはあなたが2016/08/08の締切前にアップグレードを行うのを助けます。これは、このような通知や API v2.1 への自動的なアップグレードを防ぎます。
YourApp の Graph API でサポートされるもっとも古いバージョンは v2.0 です。これは2016/08/08(月曜日)に非推奨となります。もしあなたのアプリケーションが v2.0 への呼び出しを行っているのであれば、将来的な不具合を避けるために、全ての API 呼び出しを v2.1 またはそれより新しいものに移行してください。
我々は Graph API のアップグレードツールを使うことを推奨します。このツールを使うことで、あなたのどの API 呼び出しが、新しいバージョンへの置き換えと同様にこのアップグレードによって、影響を受けるかが分かります。また我々の全ての変更リストを確認するためにチェンジログを見ることもできます。
Facebook 開発者コミュニティのグループで質問やフィードバックをおすすめします。このグループは我々のエンジニアにサポートされています。
App ダッシュボードで、このメッセージ及びあなたのアプリケーション YourApp に関係のある他の開発者向け通知を確認できます。

スポンサーリンク
パーフェクト Ruby on Rails は、最近読んだ Rails 本の中では一番役に立った本です。Chef や Capistrano など Rails と共によく使用される技術にも触れてあります。Ruby on Rails 4 アプリケーションプログラミングは、入門的な内容で Rails の機能全体を網羅されています。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!