ユーザーの略歴
404 経歴が見つかりません
2016年2月7日からのメンバー

@Kazuma Watanabe さん、こんにちは!
ご質問ありがとうございます。

S3のあるAWS環境外からアクセスする場合には、推測されている通り認証情報が必要になります。

具体的には、記事の手順の (4) で 
credentialsFile を指定します。
ご使用のS3環境の AWSアクセスキー より、以下のようなファイルを作成します。

[default]
aws_access_key_id=xxxx....
aws_secret_access_key=xxxx....
aws_session_token=xxxx....

このファイルを任意の場所に置き、credentialsFile で指定します。
例:
set region=...
set credentialsFile="C:\work\AWS\credentialsFile"
:

こちらで動作するか、ご確認ください。よろしくお願いいたします。

★2025/07/25 追記★
★4)-3 非同期DRの環境にミラーデータベースを追加する手順として 、
2025.1以降のバージョンより追加された、「ミラーメンバーからの自動データベースダウンロード」機能を使用して、プライマリから簡単にミラーデータベースをダウンロードする方法を追記しました。

こちら大変便利な記事ですね。参考にされているユーザさんも多いかと思います。

実際に実装する際、アクセストークンの有効期限(60分)が切れた後、再度認可コードから取得するのはちょっと不便・・・ということがあるかと思います。
そんな時には、リフレッシュトークンを利用してアクセストークンを再発行することも可能です。一度発行されたリフレッシュトークンは、ほぼ無期限で使えます(6か月使用されないと無効化されます)。
その手順をご紹介します。


【方法】

1.Refresh Token を取得します
記事の手順の「 認可コードをもとに Google から Access Token を取得 」の箇所で、Google から戻ってきたJSONより、refresh_token を取得しておきます。

write json,!!
 {
   "access_token": "...
      "expires_in": 3599,
            "refresh_token": "1//0e-nCKyf_",   <-- ここ

/*----------------*/
set RefreshToken={}.%FromJSON(json)."refresh_token"      ; JSON から "refresh_token" の値を取得


2.Refresh Token を使用して、新しいAccess Token を取得します

    set req = ##class(%Net.HttpRequest).%New()
    set req.SSLConfiguration="GMAILSSL"                            ; 手順(4)で設定した SSL構成名
    do req.SetParam("client_id","123-abc.googleusercontent.com")   ; 手順(2)で入手した クライアントID
    do req.SetParam("client_secret","GOCSPX-xyz999")               ; 手順(2)で入手した クライアントシークレット
    do req.SetParam("refresh_token",RefreshToken)                  ; 1.で取得したリフレッシュトークン
    do req.SetParam("redirect_uri","http://127.0.0.1/test.html")   ; 手順(2)で設定した リダイレクト先
    do req.SetParam("grant_type","refresh_token")
    do req.SetParam("access_type","offline")
    do req.Post("https://accounts.google.com/o/oauth2/token")      ; Google から Access Token を取得するためのリクエスト
 
    set resData = req.HttpResponse.Data
    set json=resData.Read(10000)                                   ; Google から戻ってきたJSON
    //write json,!!
    set AccessToken={}.%FromJSON(json)."access_token"              ; JSON から "access_token" の値を取得
    write AccessToken,!!


これで新しい AccessToken が取得できました。
Access Token を指定して Gmail から送信」の手順でメールの送信ができるようになります。

認定証と Credly バッジ:
Global Mastersバッジ:
フォロワー:
フォロー中:
Megumiさんはまだ誰もフォローしていません。