GeneXus Access Manager では、Facebook を使用して認証を行うことができます。
概要
Facebook サイトで「Facebook クライアントアプリケーション」を作成し、そのアプリケーションの App Id および App Secret を取得します。
次の図に示すように、Facebook の開発者ページ (http://developers.facebook.com/) に移動し、 [ My apps ] 、 [ Add a new app ] を選択します:
[ Site URL ] に http://<ドメイン> (例: apps5.genexus.com) と入力します。
[ settings ] > [ Basic ] に移動し、アプリケーションの App Id と App Secret を取得します。
[ Products ] > [ Facebook Login ] > [ Settings ] に移動します。 [ Valid OAuth redirect URIs ] フィールドに有効な値を入力します。
有効な形式は http://<サーバー>/<ベース URL>/oauth/gam/callback です。
このフィールドには、必要な数の URI を入力できます。たとえば、
モバイルアプリケーションの REST Web サービスが Web アプリケーションと別である場合、その URL も加える必要があります。次の形式になります:
http://<サーバー>/<サービスのベース URL>/oauth/gam/callback
[ Web OAuth Login ] は常に YES に設定する必要がある点にも注意してください。
注: 忘れずに、FB アプリケーションを公開にしてください。
「Facebook 認証タイプ」の定義は、
GAM Backend または
GAM API を使用して行います。
[ 認証タイプ ] リンクに移動します。
重要な注記:
指定された Local site URL は、アプリケーションが実行されるドメインのみです。サイトの完全な URL を入力する必要はありません。たとえば、http://apps6.genexus.com のように入力します。
サイトの完全な URL を入力した場合も正しいですが、Java では「/servlet」を含めないでください。
Facebook 認証タイプは、Web アプリケーションおよびネイティブ モバイル アプリケーションでも使用できます。
ログインの実行方法の詳細については、「
GAMExampleLogin オブジェクト」を参照してください。
検討事項: LoginFacebook 関数は、ポップアップウィンドウで期待どおりに動作しません (同じことが LoginTwitter でも起こります)。これは、HTML iFrame からのリダイレクトをサポートしていないサイトの制限です。回避策については、
SAC #34259 を参照してください。
ネイティブ モバイル アプリケーションの場合、Facebook を使用して認証するために、ログインオブジェクトにイベントを追加する必要があります。
関連付けられたイベント内のロジックには、「LoginExternal」という名前の
Actions 外部オブジェクトのメソッドの呼び出しが含まれます。
1 つ目のパラメーターは GAMAuthenticationTypes ドメインに基づき、その値は「Facebook」にする必要があります。
この場合、&User パラメーターと &password パラメーターは無視されます。
&LoginExternalAdditionalParameters には、認証タイプの名前を設定できる [ AuthenticationTypeName ] プロパティがあります。これは、リポジトリに複数の Facebook 認証タイプを定義できるためです。
Event 'Facebook'
Composite
&LoginExternalAdditionalParameters.AuthenticationTypeName = !"facebook1"
GeneXus.SD.Actions.LoginExternal(GAMAuthenticationTypes.Facebook, &User, &Password, &LoginExternalAdditionalParameters)
Return
EndComposite
EndEvent
リポジトリ内の Facebook 認証タイプが 1 つだけの場合は、Facebook ログインは次のようにプログラミングできます (&LoginExternalAdditionalParameters を使用しない):
Event 'Facebook'
Composite
GeneXus.SD.Actions.LoginExternal(GAMAuthenticationTypes.Facebook, &User, &Password)
Return
EndComposite
EndEvent
詳細については、「
GAM の Login メソッド」を参照してください。
- Java: JDK 1.7 以降をアプリケーションサーバーにインストールする必要があります。さもなければ、Facebook の証明書を JVM のキーストアにインストールする必要があります。
- Csharp: Facebook の証明書を Windows サーバーにインストールする必要があります。
1. Facebook 認証は、OAuth を使用して解決されます。
2. 友達と連携したい場合、またはユーザーがログインした後に特定のアクションを行う場合は、Facebook API との通信が必要です。そのような場合、GAMSession 外部オブジェクトの ExternalToken メソッドを取得する必要があります。このメソッドを呼び出した結果を Facebook API に渡します。
GAM: Facebook API の呼び出し例
GAM の認証タイプ: Twitter
GAM の認証タイプ: Google
Additional Scope Property for GAM Google / Facebook Authentication Types
iOS 6.0 Facebook Integration
Windows Phone Facebook Integration