Login Widget SDK APIコールの使用方法

以下の場合で、ログインウィジェットからLogin Widget SDK APIコールを別に扱うことができます:

  • 自分のウィジェットを使用する
  • ログインウィジェットフローを部分的に実装する

Note
すべてのAPIコールがこのシナリオをサポートしているわけではありません

コードの初期化

Login Widget SDK APIコールをウィジェットなしで使用するには、以下のコードを<body>タグに接続します:

Copy
Full screen
Small screen
    <script>
    const api = new XsollaLogin.Api({
      projectId: 'someProjectId'
    });
    </script>

    npm-packageを使用する場合の初期化コード:

    Copy
    Full screen
    Small screen
      import XsollaLogin from '@xsolla/login-sdk';
      const api = new XsollaLogin.Api({
        projectId: 'someProjectId'
      });

      初期化コードでは、以下のパラメータが渡されます:

      パラメータ種類説明文
      projectId
      stringパブリッシャーアカウントからのログインプロジェクトのID。必須
      fullLocale
      string<language code>_<country code>フォーマットのインターフェース言語と地域、そこで:以下の言語に対応しています:アラビア語(ar_AE)、ブルガリア語(bg_BG)、チェコ語(cz_CZ)、ドイツ語(de_DE)、スペイン語(es_ES)、フランス語(fr_FR)、ヘブライ語(he_IL)、イタリア語(it_IT)、日本語(ja_JP)、韓国語(ko_KR)、ポーランド語(pl_PL)、ポルトガル語(pt_BR)、ルーマニア語(ro_RO)、ロシア語(ru_RU)、タイ語(th_TH)、トルコ語(tr_TR)、ベトナム語(vi_VN)、中国語簡体字(zh_CN)、中国語繁体字(zh_TW)。
      このパラメータは、指定された地域での使用頻度によるソーシャルネットワークのソートや、ユーザーに送信されるメール言語に影響します。
      callbackUrl
      stringログインまたはサインアップが成功した場合にエクソラログインサーバーが機能するURL。
      emailTemplate
      stringユーザーにメールを送信するためのプロジェクト名。
      payload
      stringコードで渡すことのできる追加データ。このデータは、ログイン成功後にユーザーJWTに追加されます。
      with_logout
      boolean新規ログイン時に以前のトークンを取り消すかどうか。 デフォルトではfalseです。
      clientId
      stringクライアントアプリのID。アプリでOAuth 2.0プロトコルベースの認証が使用されている場合に渡されます。
      scope
      stringアプリによって要求されたユーザーアカウントに関する追加情報。アプリでOAuth 2.0プロトコルベースの認証が使用されている場合に渡されます。 可能な値:
      • email — ソーシャルログインの際に、ユーザーのメールアドレスを入力する追加リクエスト。
      • offline — JWTの有効期限が切れた後の自動更新。
      • playfab — の SessionTicket パラメータは、ユーザーデータが PlayFab に保存されている場合、自動的にJWTに渡されます。
      また、独自のパラメータを指定することもできます。エクソラログインサーバーはそれらを処理せず、JWTに返します。
      state
      stringCSRF攻撃などを防ぐための追加のユーザー認証です。8文字以上でなければなりません。
      redirectUrl
      stringユーザーがアカウントを確認、ログイン、またはパスワードのリセットを確認した後、ユーザーがリダイレクトされるURL。
      booleanユーザーがメールまたは電話によるパスワードなしでログインした際に、電子メール内のリンクによるパスワードなし認証の確認を無効にするかどうか。 デフォルトではfalseです。
      is_oauth2
      booleanOAuth 2.0プロトコルベースの認証をユーザーに使用するかどうか。デフォルトではfalseです。

      APIコール

      以下のLogin Widget SDK APIコールは、ログインウィジェットがなくても使用できます:

      パスワードによるユーザー登録

      コール説明パラメータ
      api.signup(userInfo);新しいユーザを登録します。ユーザに関するデータは、登録時にuserInfoオブジェクトに渡されます。登録されたユーザのトークンはレスポンスに渡されます。
      • email(string)— ユーザーのメールアドレス。必須
      • username(string)— ユーザー名。必須
      • password(string)— ユーザーパスワード。必須
      • nickname(string)— ユーザーニックネーム。

      例:

      Copy
      Full screen
      Small screen
        let result
        // Request
        api.signup({
          userInfo: {
            email: 'email@address.com',
            fields: {
              nickname: 'Johny'
            },
            password: 'password123',
            username: 'John'
          }
        }).then((res) => {
          result = res;
        })
        
        // Response
        result === {
          login_url: 'https://someurl.com?token=XXXXXXX'
        }

        パスワードによるログイン

        コール説明パラメータ
        api.login(credentials);パスワードを使用してユーザーを認証します。ユーザーログインに必要なユーザーに関するデータは、credentialsオブジェクトに渡されます。認証されたユーザーのトークンがレスポンスに渡されます。
        • username(string)— ユーザー名、例えば — John、またはメールアドレス、例えば — email@address.com必須
        • password(string) — ユーザーパスワード。必須

        例:

        Copy
        Full screen
        Small screen
          let result
          // Request
          api.login({
            credentials: {
              password: 'password123',
              username: 'email@address.com'
            }
          }).then((res) => {
            result = res;
          })
          
          // Response
          result === {
            login_url: 'https://someurl.com?token=XXXXXXX'
          }
          
          // Response with additional fields
          result === {
            ask_fields: [{
              confirmation_type: 'code' || 'link'
              name: 'phone_number'
              required: false
              step: 0 // Displays the position of the field in the data retrieval queue.
              type: 'phone'
              validation: {} // Custom validation
            }]
            login_url: 'https://someurl.com?token=XXXXXXX',
            token: 'sometoken'
          }

          アカウント確認

          コール説明パラメータ
          api.resendEmail(username);追加のアカウント確認メールを送信します。アカウントを確認するには、ユーザーはメール内のリンクをクリックする必要があります。ユーザーのメールアドレスは、usernameオブジェクトで渡されます。標準コード204が応答で返されます。
          • username(string) — ユーザーのメールアドレス、例えば — email@address.com必須

          例:

          Copy
          Full screen
          Small screen
            let result
            // Request
            api.resendEmail({
              username: 'email@address.com'
            }).then((res) => {
              res.code === 204;
            })

            パスワードレス認証

            ユーザーフロー:

            1. ユーザーは、電話番号やメールアドレスを入力します。入力された認証情報に応じて、api.phoneGetCodeまたはapi.emailGetCodeのいずれかが呼び出されます。
            2. サーバーはそのデータを受け取り、コードを記載したメールまたはSMSをユーザーに送信します。コードの初期化時に、電子メール内のリンクによるログイン確認を無効にするdisableConfirmByLink=trueパラメータが渡されると、リンクをクリックした後のユーザーの自動リダイレクトにapi.getConfirmCodeコールが使用されます。
            3. api.phoneGetCodeまたはapi.emailGetCodeコールは、api.loginWithPhoneCodeまたはapi.loginWithEmailCodeコールによる電話番号またはメールアドレスの確認に使用したoperation_idパラメータを返します。
            4. メールアドレスまたは電話番号の確認に成功すると、tokenパラメータを持つURLが返されます。このトークンは、ユーザーに関する追加データのリクエストに使用されます。

            コール説明パラメータ
            api.phoneGetCode({ phone_number, link_url, isOauth2 });電話番号に確認コードを送信します。電話番号の確認に使用したoperation_idパラメータがレスポンスに返されます。
            • phone_number(string)— パスワードレス認証のための電話番号。
            • link_url(string)— 確認URL。
            • isOauth2 (boolean) —OAuth 2.0プロトコルベースのユーザー認証を使用するかどうか。必須

            例:

            Copy
            Full screen
            Small screen
              let result
              // Request
              api.phoneGetCode({
                phone_number: '+somenumber',
                link_url: 'https://someurl.com',
                isOauth2: true
              }).then((res) => {
                result = res;
              })
              
              // Response
              result === {
                operation_id: '2334j255fdf13d515fgd1'
              }

              コール説明パラメータ
              api.phoneGetCode({ phone_number, link_url, isOauth2 });メールアドレスに確認コードを送信します。メールアドレスの確認に使用したoperation_idパラメータがレスポンスに返されます。
              • email(string)— パスワードレス認証用のメールアドレス。
              • link_url(string)— 確認URL。
              • isOauth2 (boolean) — OAuth 2.0プロトコルベースのユーザー認証を使用するかどうか。 必須

              例:

              Copy
              Full screen
              Small screen
                let result
                // Request
                api.emailGetCode({
                  email: 'email@address.com',
                  link_url: 'https://someurl.com',
                  isOauth2: true
                }).then((res) => {
                  result = res;
                })
                
                // Response
                result === {
                  operation_id: '2334j255fdf13d515fgd1'
                }

                コール説明パラメータ
                api.getConfirmCode({ cancelToken, login, operation_id });ユーザーがリンクをクリックした後に、自動的にリダイレクトするための確認コードを取得します。
                • cancelToken(string)— セッションを終了するための一意のトークン。必須
                • login(string)— ユーザーの電話番号またはメールアドレス。必須
                • operation_id(string)— 現在のセッション中にユーザーの電話番号または電子メールアドレスを確認するために使用される一意の識別子。必須

                例:

                Copy
                Full screen
                Small screen
                  let result
                  // Request
                  const axiosCancelToken = Axios.CancelToken.source();
                  
                  api.getConfirmCode({
                    cancelToken: axiosCancelToken,
                    login: '+somenumber' || 'email@address.com',
                    operation_id: '334j255fdf13d515fgd1'
                  }).then((res) => {
                    result = res;
                  })
                  
                  // Response
                  result === {
                    code: 'string'
                  }
                  
                  // If the waiting time has elapsed, returns:
                  result === {
                    error: {
                      code: '010-050',
                      description: 'Deadline exceeded.'
                    }
                  }
                  
                  // If you no longer need to wait for verification through the link you can close the request waiting period:
                  axiosCancelToken.cancel();

                  コール説明パラメータ
                  api.loginWithPhoneCode({ phone_number, code, operation_id, isOauth2 });電話番号を確認します。レスポンスには、tokenパラメータを持つURLが返されます。これは、ユーザーに関する追加データのリクエストに使用されます。
                  • phone_number(string) — パスワードレス認証のための電話番号。
                  • code (string) — SMSで送信される電話確認コード
                  • operation_id(string) — 現在のセッション中にユーザーの電話番号を確認するために使用される一意の識別子。
                  • isOauth2(boolean)—OAuth 2.0プロトコルベースのユーザー認証を使用するかどうか。必須

                  例:

                  Copy
                  Full screen
                  Small screen
                    let result
                    // Request
                    api.loginWithPhoneCode({
                      phone_number: 'email@address.com',
                      code: '3423',
                      operation_id: '334j255fdf13d515fgd1',
                      isOauth2: true
                    }).then((res) => {
                      result = res;
                    })
                    
                    // Response
                    result === {
                      login_url: 'https://someurl.com?token=XXXXXXX'
                    }
                    
                    
                    // Response with additional fields
                    result === {
                      ask_fields: [{
                        confirmation_type: 'code' || 'link'
                        name: 'email'
                        required: false
                        step: 0 // Displays the position of the field in the data retrieval queue.
                        type: 'email'
                        validation: {} // Custom validation
                      }]
                      login_url: 'https://someurl.com?token=XXXXXXX',
                      token: 'sometoken'
                    }

                    コール説明パラメータ
                    api.loginWithEmailCode({ email, code, operation_id, isOauth2 });メールアドレスを確認します。レスポンスには、tokenパラメータを持つURLが返されます。これは、ユーザーに関する追加データのリクエストに使用されます。
                    • email(string) — パスワードレス認証のためのメールアドレス。
                    • code (string) — メールで送信される確認コード
                    • operation_id(string) — 現在のセッション中にメールアドレスを確認するために使用される一意の識別子。
                    • isOauth2(boolean)— OAuth 2.0プロトコルベースのユーザー認証を使用するかどうか。必須

                    例:

                    Copy
                    Full screen
                    Small screen
                      let result
                      // Request
                      api.loginWithEmailCode({
                        email: 'email@address.com',
                        code: '3423',
                        operation_id: '334j255fdf13d515fgd1',
                        isOauth2: true
                      }).then((res) => {
                        result = res;
                      })
                      
                      // Response
                      result === {
                        login_url: 'https://someurl.com?token=XXXXXXX'
                      }
                      
                      // Response with additional fields
                      result === {
                        ask_fields: [{
                          confirmation_type: 'code' || 'link'
                          name: 'phone_number'
                          required: false
                          step: 0 // Displays the position of the field in the data retrieval queue.
                          type: 'phone'
                          validation: {} // Custom validation
                        }]
                        login_url: 'https://someurl.com?token=XXXXXXX',
                        token: 'sometoken'
                      }

                      パスワードなしでのフィールド追加リクエスト

                      ユーザーフロー:

                      1. ユーザーの認証に成功した後、api.loginWithEmailCodeまたはapi.loginWithPhoneCodeのコールは、アプリ内で別のフォームで表示できるフィールドの配列を返し、さらにユーザーの電話番号とメールアドレスを収集します。また、api.getAskFieldsコールを実行することで、フィールドのリストを取得することができます。
                      2. ユーザーは、電話番号やメールアドレスを入力します。api.askが実行されます。
                      3. データを受け取ったサーバーは、電話番号やメールアドレスに確認コードを送信します。コードの初期化時に、メール内のリンクによるログイン確認を無効にするdisableConfirmByLink=trueパラメータが渡された場合、リンクをクリックした後の自動ユーザーリダイレクトにapi.getConfirmCodeコールが使用されます。
                      4. api.askコールは、api.loginWithPhoneCodeまたはapi.loginWithEmailCodeコールによる電話番号またはメールアドレスの確認に使用されるoperation_idパラメータを返します。
                      5. 認証されたユーザーへのリダイレクトに使用されるURLは、データの確認に成功した後に返されます。

                      コール説明パラメータ
                      api.getAskFields(token);追加リクエストのフィールドのリストを取得します。
                      • token(string) — ユーザーJWT。必須

                      例:

                      Copy
                      Full screen
                      Small screen
                        let result
                        // Request
                        api.getAskFields({
                          token: 'sometoken'
                        }).then((res) => {
                          result = res;
                        })
                        
                        // Response
                        result === [
                          {
                            confirmation_type: 'code' || 'link'
                            name: 'phone_number' || 'email'
                            required: false
                            step: 0 // Displays the position of the field in the data retrieval queue.
                            type: 'phone' || 'email'
                            validation: {} // Custom validation
                          }
                        ]

                        コール説明パラメータ
                        api.ask({ fields, token, link_url });ユーザーに関する追加データ — 電話番号またはメールアドレスを送信します。指定された電話番号やメールアドレスを確認するためのoperation_idパラメータがレスポンスに返されます。確認が不要な場合は、認証済みユーザーへのリダイレクトに使用されるtokenパラメータを持つURLをレスポンスに返します。
                        • fields(object) — ユーザーの電話番号やメールアドレスが渡されるオブジェクト。 必須
                        • token(string) — ユーザーJWT。 必須
                        • link_url(string)— 確認URL。

                        電話番号を送信する場合の例:

                        Copy
                        Full screen
                        Small screen
                          let result
                          // Request
                          api.ask({
                            fields: {  
                              phone_number: '+somenumber'
                            },
                            link_url: 'https://someurl.com',
                            token: 'sometoken'
                          }).then((res) => {
                            result = res;
                          })
                          
                          // Response
                          result === {
                            error: {
                              code: '003-014'
                              description: 'Confirm phone number.'
                              details: { operation_id: 'BPaBScLM44GesoOYSxT5I8QfgIrTSURd' }
                            }
                          }
                          
                          // Response without confirmation
                          result === {
                            redirect_url: '<login_url>?token=<token>'
                          }

                          メールアドレスを送信する場合の例:

                          Copy
                          Full screen
                          Small screen
                            let result
                            // request
                            api.ask({
                              fields: {  
                                email: 'email@address.com'
                              },
                              link_url: 'https://someurl.com',
                              token: 'sometoken'
                            }).then((res) => {
                              result = res;
                            })
                            
                            // Response
                            result === {
                              error: {
                                code: '003-011'
                                description: 'Confirm email.'
                                details: { operation_id: 'BPaBScLM44GesoOYSxT5I8QfgIrTSURd' }
                              }
                            }
                            
                            // Response without confirmation
                            result === {
                              redirect_url: '<login_url>?token=<token>'
                            }

                            コール説明パラメータ
                            api.getConfirmCode({ cancelToken, login, operation_id });リンクをクリックした後、ユーザーを自動的にリダイレクトするための確認コードを取得します。
                            • cancelToken(string)— セッションを終了するための一意のトークン。必須
                            • login(string)— ユーザーの電話番号またはメールアドレス。 必須
                            • operation_id(string)— 現在のセッション中にユーザーの電話番号または電子メールアドレスを確認するために使用される一意の識別子。必須

                            例:

                            Copy
                            Full screen
                            Small screen
                              let result
                              // Request
                              const axiosCancelToken = Axios.CancelToken.source();
                              
                              api.getConfirmCode({
                                cancelToken: axiosCancelToken,
                                login: '+somenumber' || 'email@address.com',
                                operation_id: '334j255fdf13d515fgd1'
                              }).then((res) => {
                                result = res;
                              })
                              
                              // Response
                              result === {
                                code: 'string'
                              }
                              
                              // If the waiting time has elapsed, returns:
                              result === {
                                error: {
                                  code: '010-050',
                                  description: 'Deadline exceeded.'
                                }
                              }
                              
                              // If you no longer need to wait for verification through the link you can close the request waiting period:
                              axiosCancelToken.cancel();

                              コール説明パラメータ
                              api.loginWithPhoneCode({ phone_number, code, operation_id, isOauth2 });電話番号を確認します。レスポンスには、tokenパラメータを持つURLが返されます。これは、ユーザーに関する追加データのリクエストに使用されます。
                              • phone_number(string) — パスワードレス認証のための電話番号。
                              • code (string) — SMSで送信される電話確認コード
                              • operation_id(string) — 現在のセッション中にユーザーの電話番号を確認するために使用される一意の識別子。
                              • isOauth2(boolean)—OAuth 2.0プロトコルベースのユーザー認証を使用するかどうか。必須

                              例:

                              Copy
                              Full screen
                              Small screen
                                let result
                                // Request
                                api.loginWithPhoneCode({
                                  phone_number: 'email@address.com',
                                  code: '3423',
                                  operation_id: '334j255fdf13d515fgd1',
                                  isOauth2: true
                                }).then((res) => {
                                  result = res;
                                })
                                
                                // Response
                                result === {
                                  login_url: 'https://someurl.com?token=XXXXXXX'
                                }
                                
                                
                                // Response with additional fields
                                result === {
                                  ask_fields: [{
                                    confirmation_type: 'code' || 'link'
                                    name: 'email'
                                    required: false
                                    step: 0 // Displays the position of the field in the data retrieval queue.
                                    type: 'email'
                                    validation: {} // Custom validation
                                  }]
                                  login_url: 'https://someurl.com?token=XXXXXXX',
                                  token: 'sometoken'
                                }

                                コール説明パラメータ
                                api.loginWithEmailCode({ email, code, operation_id, isOauth2 });メールアドレスを確認します。レスポンスには、tokenパラメータを持つURLが返されます。これは、ユーザーに関する追加データのリクエストに使用されます。
                                • email(string) — パスワードレス認証のためのメールアドレス。
                                • code (string) — メールアドレスへ送信されるメール確認コード
                                • operation_id(string) — 現在のセッション中にユーザーのメールアドレスを確認するために使用される一意の識別子。
                                • isOauth2(boolean)—OAuth 2.0プロトコルベースのユーザー認証を使用するかどうか。必須

                                例:

                                Copy
                                Full screen
                                Small screen
                                  let result
                                  // Request
                                  api.loginWithEmailCode({
                                    email: 'email@address.com',
                                    code: '3423',
                                    operation_id: '334j255fdf13d515fgd1',
                                    isOauth2: true
                                  }).then((res) => {
                                    result = res;
                                  })
                                  
                                  // Response
                                  result === {
                                    login_url: 'https://someurl.com?token=XXXXXXX'
                                  }
                                  
                                  // Response with additional fields
                                  result === {
                                    ask_fields: [{
                                      confirmation_type: 'code' || 'link'
                                      name: 'phone_number'
                                      required: false
                                      step: 0 // Displays the position of the field in the data retrieval queue.
                                      type: 'phone'
                                      validation: {} // Custom validation
                                    }]
                                    login_url: 'https://someurl.com?token=XXXXXXX',
                                    token: 'sometoken'
                                  }

                                  パスワードのリセット

                                  ユーザーフロー:

                                  1. アプリケーションがフォームを開き、ユーザーが電子メールアドレスまたはユーザー名を入力します。api.resetコールが実行されます。
                                  2. サーバーはユーザーに確認メールを送信します。
                                  3. ユーザーはメール内のリンクをクリックして、新しいパスワードを入力するフォームを開きます。
                                  4. ユーザーが新しいパスワードを入力します。api.setコールが実行されます。

                                  コール説明パラメータ
                                  api.reset(username);パスワードをリセットし、アクションを確認します。パスワードリセットを確認するためには、ユーザはメール内のリンクをクリックする必要があります。ユーザ名またはユーザの電子メールアドレスは、usernameオブジェクトで渡されます。レスポンスには204コードが返されます。
                                  • username(string)— ユーザー名、例えば — John、またはメールアドレス、例えば — email@address.com必須

                                  例:

                                  Copy
                                  Full screen
                                  Small screen
                                    let result
                                    // Request
                                    api.reset({
                                      username: 'John'
                                    }).then((res) => {
                                      res.code === 204;
                                    })

                                    コール説明パラメータ
                                    api.set({ new_password, reset_code, user_id });新しいパスワードを設定し、アクションを確認します。新しいパスワードを確認するには、ユーザーはメール内のリンクをクリックする必要があります。レスポンスには204コードが返されます。
                                    • new_password(string)— ユーザーが入力した新しいパスワード。 必須
                                    • reset_code(string)— パスワード変更のリクエストを送信したユーザー確認用のコード。 このコードはサーバー側で生成され、ユーザーがメール内のリンクをクリックした後にリダイレクトされるURLに渡されます。必須
                                    • user_id(string)— ユーザー識別子。これは、サーバー側で生成され、メール内のリンクをクリックした後にユーザーがリダイレクトされるURLに渡されます。必須

                                    例:

                                    Copy
                                    Full screen
                                    Small screen
                                      let result
                                      // Request
                                      api.set({
                                        new_password: 'newpass',
                                        reset_code: '3423',
                                        user_id: '324324234'
                                      }).then((res) => {
                                        res.code === 204;
                                      })

                                      シングルサインオン

                                      パラメータ種類説明文
                                      api.checkUserAuthSSO();
                                      ユーザがシングルサインオンで認証されているかどうかを確認します。成功すると、1回限りのcodeが返されます。

                                      例:

                                      Copy
                                      Full screen
                                      Small screen
                                        let result
                                        // Request
                                        api
                                          .checkUserAuthSSO()
                                          .then(res => {
                                            result === res;
                                          });
                                        
                                        result === {
                                          code: "examplecode"
                                        }

                                        コール説明パラメータ
                                        api.userAuthSSOWithRedirect(loginUrl);ユーザーがシングルサインオンで認証されたかどうかを確認します。認証に成功した場合は、認証コードを含む生成されたloginUrlのURLにリダイレクトされます。
                                        • loginUrl(string) — SSOチェック後にユーザーがリダイレクトされるURL。このコールバックURLは、ログインプロジェクト > 一般設定にあるパブリッシャーアカウントURLブロックに表示されているコールバックURLと同じでなければなりません。ユーザーがリダイレクトできるURLアドレスが複数ある場合に必要です。

                                        例:

                                        Copy
                                        Full screen
                                        Small screen
                                          // Request
                                          api
                                            .userAuthSSOWithRedirect(
                                              loginUrl: 'some-redirect-url.com'
                                            )
                                            .then(res => {
                                              res.code === 302;
                                            });

                                          コール説明パラメータ
                                          api.logout(token, session);システムのユーザーをログアウトし、sessionパラメータに従ってユーザーセッションを削除します。
                                          • token(string)— ユーザーJWT。必須
                                          • session(string)— ユーザーがシステムからログアウトし、そのセッションが削除される様子を示しています。必須。以下のことができます:
                                            • sso — SSOユーザーセッションのみを削除します。
                                            • all — SSOユーザーセッションとすべてのアクセストークンおよび更新を削除します。

                                          例:

                                          Copy
                                          Full screen
                                          Small screen
                                            // Request
                                            api
                                              .logout(
                                                token: 'exampleToken',
                                                session: 'sso' | 'all'
                                              )
                                              .then(res => {
                                                res.code === 204;
                                              });

                                            この記事は役に立ちましたか?
                                            ありがとうございます!
                                            改善できることはありますか? メッセージ
                                            申し訳ありません
                                            この記事が参考にならなかった理由を説明してください。 メッセージ
                                            ご意見ありがとうございました!
                                            あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
                                            このページを評価する
                                            このページを評価する
                                            改善できることはありますか?

                                            答えたくない

                                            ご意見ありがとうございました!
                                            最終更新日: 2021年10月21日

                                            誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。

                                            問題を報告する
                                            当社は常にコンテンツを見直しています。お客様のご意見は改善に役立ちます。
                                            フォローアップ用のメールをご提供してください
                                            ご意見ありがとうございました!