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

Nhân viên hỗ trợ thường có rất ít thông tin chi tiết về người dùng mà họ giao tiếp ngoài thông tin người dùng cung cấp trong cuộc trò chuyện. Tuy nhiên, tác nhân 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 hóa cuộc trò chuyện và thực hiện thao tác thay mặt cho người dùng.

Trong quy trình trò chuyện này, người dùng chọn thêm tiền vào tài khoản và nhân viên hỗ trợ 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 tín dụng.

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

    {
      "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\39;d muốn thêm 5 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ợ sẽ gửi "Tôi có thể giúp bạn làm việc đó. Đăng nhập vào tài khoản của bạn để tiếp tục;" cùng với một đề xuất yêu cầu Xác thực.

    clientIdscopes do nhà cung cấp OAuth xác định. Tác nhân sẽ tạo giá trị codeChallenge theo yêu cầu của nhà cung cấp OAuth.

    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 sẽ nhận được thông báo, nhấn vào đề xuất 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ợ sẽ nhận được tin nhắn kèm theo 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. Tác nhân sẽ giao tiếp với nhà cung cấp OAuth, trao đổi mã ủy quyền để có 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. Để xác nhận, bạn muốn thêm 5 khoản tín dụng vào tài khoản của mình và lập hóa đơn phương thức thanh toán mặc định##quot; dưới dạng tin nhắn có "Có" và "Không" như 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 "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. Tác nhân xử lý giao dịch này bằng mã truy cập OAuth, sau đó gửi tin nhắn "Great. Tôi vừa thêm 5 khoản tín dụng vào tài khoản của bạn. Tôi có thể giúp bạn vấn đề nào khác 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'
      }
    }"