GAM 認証タイプが Facebook の場合、Facebook から付与される ExternalToken を使用することで、Facebook API を呼び出すことができます。
次の例では、ログインしているユーザーの友達のリストを取得します。
1.GAM リポジトリで定義された GAM Facebook 認証タイプが必要です。 2.この例では、ログインしているユーザーの認証タイプが "Facebook" の場合、Facebook API (graph.facebook.com) の命令に従ってユーザーの友達を要求します。これは、現在の GAM セッションによって返される ExternalToken を使用して行われます。 Web パネルのコードは、次のようになります:
Event Refresh
&SessionValid = GAMSession.IsValid(&Session, &Errors) //&Session は GAMSession データタイプ、&Errors は GAMError データタイプのコレクション
If &SessionValid and not &Session.IsAnonymous
&User = GAMUser.Get() //&User は GAMUser データタイプ
if &User.AuthenticationTypeName = 'facebook'
&ExternalToken = &Session.ExternalToken
endif
&httpClient.Host = "graph.facebook.com" //&httpclient は HTTPClient データタイプ
&httpClient.BaseUrl = "/"
&HttpClient.Secure = 1
&StrCall = "me/friends" + "?"+ "access_token=" + &ExternalToken
&httpClient.Execute("GET", &StrCall)
&ResultHttp = &httpClient.ToString()
&data.fromJson(&ResultHttp)
&data2 = &data.data
for &dataitem in &data2 //&dataitem は &data2.data
//友達を表示する
msg(&dataitem.name)
endfor
else
do 'ProcessErrors'
Endif
EndEvent
Sub 'ProcessErrors'
For &Error in &Errors
If &Error.Code <> GAMErrorMessages.SessionExpired
Msg(Format("%1 (GAM%2)", &Error.Message, &Error.Code))
Endif
EndFor
EndSub
Facebook API のこのメソッドを呼び出すと JSON 構造を返すので、情報をロードできる SDT を定義します。その結果、返される JSON データの形式に応じて、&data および &data2 は次のようになります。
|