最近のアクセス:
OAuth モジュール

OAuth モジュールは、GeneXus コアモジュールの一部として配布され、 OAuth プロトコルを操作できるようにします。このモジュールの最初のバージョンは、承認コードフローに基づいています。
異なる役割によって実行される 2つのステップがあります。

開発者は、有効なアクセストークンを受け取るために、管理者に 3つの情報 (クライアント ID、クライアントシークレット、更新トークン) をパラメーターとして渡すように依頼する必要があります。
以下のサンプルで示すように、これらのパラメーターは、R​​efreshToken メソッドに特別に渡す必要があります。このメソッドは、API 呼び出しを実行して、アクセストークンを更新します。
RefreshToken プロシージャーの Parm ルールには、次のパラメーターが含まれます。
  1. (in) OAuthAuthorizationConfig: SDT
  2. (in) RefreshToken: String
  3. (out) OAuthAccessToken: Oauth20AccessTokenSDT
  4. (out) DateTimeTokenExpire: Datetime
  5. (out) OutMessages: Messages
  6. (out) Success: Boolean

1.OAuthAuthorizationConfig の SDT 構造は次のとおりです:
イメージ:50449.png
最初のメンバーは ID プロバイダー (IdP) を参照します。たとえば、Google、Microsoft、GAM です。このフィールドに入力するために、最も一般的な IdP のいくつかを含むモジュール内で、"AccessTokenProvider"という名前の列挙ドメインが提供されます。
2番目と 3番目のメンバーには、管理者から提供されたクライアント ID とクライアントシークレットデータを入力する必要があります。
2.RefreshToken パラメーターは、管理者によって指定された更新トークンである必要があります。
3.要求されたアクセストークンを含む OAuthAccessToken SDT が返されます。次の画像はその構造を示しています。
イメージ:50450.png
4.受信したアクセストークンの有効期限が切れる日時を含む DateTimeTokenExpireパラメーターが返されます。
5.Success パラメーターが true の場合、OutMessages パラメーターは空の文字列を返します。一方、問題の説明が含まれます。
6.out Successパラメーターは、要求が成功したかどうかを通知します。
 

サンプル

&OAuthAuthorizationConfig.AccessTokenUrl = OAuth.v2.AccessTokenProvider.Google //https://oauth2.googleapis.com/token &OAuthAuthorizationConfig.ClientId = "ClientId" &OAuthAuthorizationConfig.ClientSecret = "SecretKey" &Success = OAuth.v2.RefreshToken(&OAuthAuthorizationConfig, REFRESH_TOKEN, &OAuthAccessToken, &DateTimeTokenExpire, &Messages) if (&Success) &AccessTokenString = &OAuthAccessToken.access_token else Log.Error(&Messages) endif
 
上記は、Oauth を使用して Gmail でメッセージを送信することとどのように関連しているのでしょうか?
&OAuthAuthorizationConfig.AccessTokenUrl = OAuth.v2.AccessTokenProvider.Google //https://oauth2.googleapis.com/token &OAuthAuthorizationConfig.ClientId = "ClientId" &OAuthAuthorizationConfig.ClientSecret = "SecretKey" for each User where UserID = &UserId &OAuthAccessToken.FromJSON(UserAccessToken) //トークン再利用の場合のオプションです。For Token reuse &Success = OAuth.v2.RefreshToken(&OAuthAuthorizationConfig, REFRESH_TOKEN, &OAuthAccessToken, &DateTimeTokenExpire, &Messages) if (NOT &Success) Log.Error(&Messages) return endif UpdateAccessToken(UserId, &OAuthAccessToken) //トークン再利用の場合のオプションです。For Token reuse &AccessTokenString = &OAuthAccessToken.access_token &SMTPSession.Host = 'smtp.gmail.com'   &SMTPSession.Port = 465   &SMTPSession.Timeout = 20   &SMTPSession.Secure = 1   &SMTPSession.Authentication = 1   &SMTPSession.UserName = 'Info@gmail.com'   &SMTPSession.Password = &AccessTokenString   &SMTPSession.AuthenticationMethod = "XOAUTH2" &SMTPSession.Login()   &MailMessage.Subject="Email Subject XXX" //&MailMessageはMailMessage データタイプに基づいています。 &MailMessage.Text="Message body"  &MailRecipient.Address = "xxx@gmail.com"   //&MailRecipient は、MailRecipient データタイプに基づいています。 &MailRecipient.Name = "xxx"     &MailMessage.To.Add(&MailRecipient)   &SMTPSession.Send(&MailMessage) endfor

使用可能バージョン

GeneXus 17 Upgrade 9 以降。

参考情報

E メール用のMicrosoft Exchange OAuth 2.0: 管理者による生成とデータ収集
E メール用の Google OAuth 2.0 プロセス: 管理者による生成とデータ収集
 
  
サブページ
Created: 22/08/04 03:30 by Admin Last update: 22/08/04 04:34 by Admin
カテゴリ
Powered by GXwiki 3.0