これはユーザー情報を取得するための REST サービスです。
/oauth/gam/userinfo サービスを通じてユーザーの情報を取得できます。 サービスを実行する前に認証が必要です。そのためには、access_token サービスを通じて OAuth 2.0 のトークンを取得する必要があります。その後、GET メソッドまたは POST メソッドを通じてこのサービスを呼び出します。
$ServerURL/oauth/gam/userinfo
これが機能するためには、サービスが設定されている GAM アプリケーションのレベルで特定の設定が必要です:
-
&GAMApplication.ClientAllowRemoteAuthentication = True(GAM では、ClientCallbackURL および ClientLocalLoginURL の指定が求められていますが、この場合には使用されません)
-
&GAMApplication.ClientAllowGetUserRoles = True(ユーザーのロールを取得する場合)
-
&GAMApplication.ClientAllowGetUserAdditionalData = True(ユーザーの動的な項目属性を取得する場合)
この場合、認証トークン (&access_token) をヘッダーに入れます。
&method = !"GET"
&headername = "Authorization"
&headervalue = "OAuth " + &access_token
&getstring = &urlbase + "/oauth/gam/userinfo"
&httpclient.AddHeader(&headername, &headervalue)
&httpclient.AddHeader("GeneXus-Agent","SmartDevice Application")
&httpclient.Execute(&method, &getstring)
&httpstatus = &httpclient.StatusCode
&result = &httpclient.toString()
この場合、認証トークン (&access_token) を本文に入れます。
&method = !"POST"
&getstring = &urlbase + "/oauth/gam/userinfo"
&httpclient.AddHeader("GeneXus-Agent", "SmartDevice Application")
&httpclient.AddVariable(!"access_token", &access_token)
&httpclient.Execute(&method, &getstring)
&httpstatus = &httpclient.StatusCode
&result = &httpclient.toString()
{
"guid":"139f4332-3f40-47b0-8fb4-ee7b3dbddc4f",
"username":"admin",
"email":"admin",
"verified_email":true,
"first_name":"Administrator",
"last_name":"User",
"external_id":"",
"birthday":"2000-01-01",
"gender":"N",
"url_image":"https://",
"url_profile":"",
"phone":"+598",
"address":".",
"city":".",
"state":".",
"post_code":".",
"language":"Eng",
"timezone":".",
"CustomInfo":"",
"roles": [ "is_gam_administrator" ]
}
|