Xác thực người dùng

Nhân viên hỗ trợ thường có ít thông tin chi tiết về người dùng mà họ liên hệ từ thông tin mà người dùng cung cấp trong một cuộc trò chuyện. Tuy nhiên, nhân viên hỗ trợ có thể xác thực người dùng bằng OAuth để xác nhận danh tính người dùng, cá nhân hoá cuộc trò chuyện và thực hiện hành động nhân danh người dùng.

Trong luồng trò chuyện này, người dùng chọn thêm tín dụng vào tài khoản của họ và tác nhân nhắc người dùng đăng nhập để xác thực danh tính của người dùng, tìm nạp thông tin đã biết về người dùng và đặt hàng các khoản tín dụng.

  1. Người dùng bắt đầu cuộc trò chuyện với nhân viên hỗ trợ.
  2. Sau khi người dùng bắt đầu nhập câu trả lời, họ sẽ gửi một sự kiện nhập đến nhân viên hỗ trợ.

    {
      "agent": "brands/1111/agents/2222",
      "conversationId": "3333",
      "customAgentId": "oauth",
      "requestId": "1234567890",
      "userStatus": {
        "isTyping": "true",
        "createTime": "2020-10-02T15:01:23.045123456Z",
      },
      "sendTime": "2020-10-02T15:01:24.045123456Z",
    }
    
  3. Người dùng gửi "Xin chào! Tôi muốn thêm 5 khoản tín dụng vào tài khoản của mình" dưới dạng tin nhắn.

    {
      "agent": "brands/1111/agents/2222",
      "conversationId": "3333",
      "customAgentId": "oauth",
      "requestId": "123123123",
      "message": {
        "messageId": "4444",
        "name": "conversations/12345/messages/67890",
        "text": "Hi, I'd like to add 5 credits to my account",
        "createTime": "2020-10-02T15:05:23.045123456Z",
      },
      "context": {
        "entryPoint": "PLACESHEET",
        "userInfo": {
          "displayName": "Michael",
          "userDeviceLocale": "en",
        },
        "resolvedLocale": "en",
      }
      "sendTime": "2020-10-02T15:05:24.045123456Z",
    }
    
  4. Nhân viên hỗ trợ gửi "Tôi có thể giúp bạn xử lý vấn đề đó. Đăng nhập vào tài khoản của bạn để tiếp tục". cùng với đề xuất Yêu cầu xác thực.

    clientIdscopes do nhà cung cấp OAuth xác định. Nhân viên hỗ trợ tạo giá trị codeChallenge theo các yêu cầu liên quan.

    curl -X POST "https://businessmessages.googleapis.com/v1/conversations/3333/messages" \
    -H "Content-Type: application/json" \
    -H "`oauth2l header --json path/to/service/account/key.json businessmessages`" \
    -d "{
      'messageId': '5555',
      'text': 'I can help you with that. Sign into your account to continue.',
      'suggestions': [
        {
          'AuthenticationRequest': {
            'clientId': 'oauth_client_id_1234567890',
            'codeChallenge': 'code_challenge',
            'scopes': [
              'account',
              'billing',
            ],
          },
        },
      ],
      'representative': {
        'avatarImage': 'https://oauth.agent/bot-avatar.jpg',
        'displayName': 'OAuth Agent',
        'representativeType': 'BOT'
      }
    }"
    
  5. Người dùng nhận tin nhắn, nhấn vào đề xuất cho yêu cầu xác thực và đăng nhập vào tài khoản của mình.

  6. Nhân viên hỗ trợ nhận được thông báo có mã uỷ quyền OAuth trong Trường authenticationResponse.code.

    {
      "agent": "brands/1111/agents/2222",
      "conversationId": "3333",
      "customAgentId": "oauth",
      "requestId": "1234567895",
      "authenticationResponse": {
        "code": "fkhoe541658sfk684d135j186mngkjdrt5425415a2s1dfa68s4edf",
        },
      }
      "sendTime": "2020-10-02T15:01:24.045123456Z",
    }
    
  7. Nhân viên hỗ trợ giao tiếp với nhà cung cấp OAuth, trao đổi việc uỷ quyền cho mã truy cập và tìm nạp thông tin tài khoản của người dùng.

  8. Nhân viên hỗ trợ gửi "Cảm ơn bạn đã đăng nhập. Bạn hiện có 2 tín dụng. Người nhận xác nhận, bạn muốn tôi thêm 5 khoản tín dụng vào tài khoản của bạn và lập hoá đơn là phương thức thanh toán mặc định không?" dưới dạng một thông báo với "Có" và "Không" làm câu trả lời đề xuất.

    curl -X POST "https://businessmessages.googleapis.com/v1/conversations/3333/messages" \
    -H "Content-Type: application/json" \
    -H "`oauth2l header --json path/to/service/account/key.json businessmessages`" \
    -d "{
      'messageId': '7777',
      'text': 'Thanks for signing in. You currently have 2 credits. To confirm, you'd like to me to add 5 credits to your account and bill your default payment method?',
      'suggestions': [
        {
          'reply': {
            'text': 'Yes',
            'postbackData': 'process-transaction',
          },
        },
        {
          'reply': {
            'text': 'No',
            'postbackData': 'cancel-transaction',
          },
        },
      ],
      'representative': {
        'avatarImage': 'https://oauth.agent/bot-avatar.jpg',
        'displayName': 'OAuth Agent',
        'representativeType': 'BOT'
      }
    }"
    
  9. Người dùng nhấn vào nút "Có" câu trả lời đề xuất.

    {
      "agent": "brands/1111/agents/2222",
      "conversationId": "3333",
      "customAgentId": "oauth",
      "requestId": "1234567898",
      "suggestionResponse": {
        "message": "conversations/333/messages/8888",
        "postbackData": "process-transaction",
        "createTime": "2020-10-02T15:01:26.045123456Z",
        "text": "Yes",
        "suggestionType": "REPLY",
      }
      "sendTime": "2020-10-02T15:01:27.045123456Z",
    }
    
  10. Nhân viên hỗ trợ sẽ xử lý giao dịch bằng mã truy cập OAuth, sau đó gửi thông báo "Tuyệt vời. Tôi vừa thêm 5 khoản tín dụng vào tài khoản của bạn. Có còn vấn đề nào khác mà tôi có thể giúp bạn không?".

    curl -X POST "https://businessmessages.googleapis.com/v1/conversations/3333/messages" \
    -H "Content-Type: application/json" \
    -H "`oauth2l header --json path/to/service/account/key.json businessmessages`" \
    -d "{
      'messageId': '9999',
      'text': 'Great. I just added 5 credits to your account. Is there anything else I can help you with?',
      'representative': {
        'avatarImage': 'https://oauth.agent/bot-avatar.jpg',
        'displayName': 'OAuth Agent',
        'representativeType': 'BOT'
      }
    }"
    
  11. Người dùng gửi "Không, cảm ơn".

    {
      "agent": "brands/1111/agents/2222",
      "conversationId": "3333",
      "customAgentId": "oauth",
      "requestId": "123123133",
      "message": {
        "messageId": "4444",
        "name": "conversations/12345/messages/101010",
        "text": "No, thanks",
        "createTime": "2020-10-02T15:05:23.045123456Z",
      },
      "context": {
        "entryPoint": "PLACESHEET",
        "userInfo": {
          "displayName": "Michael",
          "userDeviceLocale": "en",
        },
        "resolvedLocale": "en",
      }
      "sendTime": "2020-10-02T15:05:28.045123456Z",
    }
    
  12. Nhân viên hỗ trợ gửi "Cảm ơn bạn đã liên hệ với chúng tôi. Chúc bạn một ngày tốt lành!"

    curl -X POST "https://businessmessages.googleapis.com/v1/conversations/3333/messages" \
    -H "Content-Type: application/json" \
    -H "`oauth2l header --json path/to/service/account/key.json businessmessages`" \
    -d "{
      'messageId': '11111111',
      'text': 'Thanks for contacting us. Have a great day!',
      'representative': {
        'avatarImage': 'https://oauth.agent/bot-avatar.jpg',
        'displayName': 'OAuth Agent',
        'representativeType': 'BOT'
      }
    }"