Facebook Button コントロールは、Facebook 内のエンドユーザーに関する公開情報を開発者に提供し、Facebook へのログイン/ログアウトを簡単に行えるようにします。これにより、ネイティブアプリケーションを操作したり、ブラウザー経由で要求を実行したりできます。
この機能を使用するには、
[ Facebook App Id ] プロパティを設定する必要があります。
このコントロールは、ユーザーの状態情報をコンソリデートします。ボタンを組み込む手順は次のとおりです:
- Facebook から取得したユーザーデータを含む JSON 文字列をキャッチするため、Character または VarChar データタイプに基づく項目属性または変数を定義します。
- この項目属性または変数をツールボックスから Panel オブジェクトまたは Work With オブジェクトにドラッグします。
- [ Control Type ] プロパティを Facebook Button に設定します。
完了すると、2 つの新しいプロパティを使用できるようになります:
- Read Permissions
取得したユーザーデータに対する一連のアクセス許可をコンマ区切りで示します。
既定では、GeneXus は公開プロファイル情報 (public_profile、email、user_friends) を要求します。
上級開発者向けに、Facebook ログインのアクセス許可に関するページに値のリストがあります。
- Publish Allowed
アプリケーションに公開権限が必要かどうかを示すブール値です。
既定では、False に設定されます。
ボタンを適切に設定したら、新しい機能を使用して Facebook から取得したユーザーデータを操作できます。
SocialUserData
Facebook から取得したユーザーデータをカプセル化します。SD Facebook Button コントロールが検出されると有効になります。
SocialUserData
{
Id: Character(20)
Name: Character(20)
FirstName: Character(20)
MiddleName: Character(20)
LastName: Character(20)
ProfileName: Character(20)
ProfileImage: Image
Gender: Character(100)
Birthday: Character(20)
Country: VarChar(40)
City: VarChar(40)
Email: Email
LocationLatitude: Character(20)
LocationLongitude: Character(20)
}
注: SocialUserData の構造がこのようになっていない場合は、
このパッチをダウンロードして
ナレッジベースにインポートしてください。
関連情報を取得するための一連のイベントが用意されています。
すべてのイベントが入力パラメーターを受け入れます。
OnUserInfoUpdated
エンドユーザーが新しい Facebook セッション (非同期プロセス) を開始すると、最初に呼び出されるイベントです。イベントが完了して接続が確立されると、ユーザー情報が更新され、利用できるようになります。
このメソッドの一般的な用途は、
FromJson メソッドを使用して、SocialUserData SDT に基づく変数にユーザーデータをロードすることです。
OnUserLoggedIn
情報通知のためのイベントです。現在の Facebook セッションの状態に関する表示を更新するために使用できます。
このイベントでは、ユーザー情報はまだ更新されません。ユーザー情報を非シリアル化する場合は、このイベントを使用しないでください。古い情報が提供される可能性があります。
OnUserLoggetOut
情報通知のためのイベントです。ユーザーが Facebook セッションからいつログアウトしたかを示します。
OnError
認証プロセスで問題が発生した場合に Facebook の既定のエラーを取得します。
このイベントは、問題の発生時にカスタムエラーを表示する場合に適しています。
まず、Character データタイプの変数
JsonUserData を定義して、Panel オブジェクトの抽象レイアウトにドラッグします。
次に、 [ Control Type ] プロパティの値を Facebook Button に設定して、新しい 2 つのプロパティが表示されることを確認します。
また、レイアウト内の変数の表示が変わります (テキストフィールドとして表示されません)。
その後で、UserSocialData SDT に基づく新しい変数 (ここでは
SocialData) を定義します。次に、その変数をロードするイベントとユーザーへのあいさつを記述します。
Event &JsonUserData.OnUserInfoUpdated
Composite
&SocialData.FromJson(&JsonUserData)
msg(Format("Hello %1!",&SocialData.name))
EndComposite
Endevent
最後に、実行環境での結果を以下に示します。
Android デバイス
iOS デバイス