Kullanıcının kimliğini doğrulama

Aracılar genellikle kullanıcıların bir görüşme sırasında sağladıkları bilgiler dışında, iletişim kurdukları kullanıcılar hakkında çok az bilgi sahibi olur. Ancak temsilciler, kullanıcı kimliğini onaylamak, görüşmeleri kişiselleştirmek ve kullanıcılar adına işlem yapmak için OAuth ile kullanıcıların kimliğini doğrulayabilir.

Bu iletişim akışında, kullanıcı hesabına kredi eklemeyi seçer ve aracıdan kullanıcının kimliğini doğrulaması, kullanıcı hakkındaki bilinen bilgileri getirmesi ve krediler için sipariş vermesini istemesi istenir.

  1. Kullanıcı, temsilciyle görüşmeyi başlatır.
  2. Kullanıcı yanıtı yazmaya başladığında temsilciye bir yazma etkinliği gönderir.

    {
      "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. Kullanıcı, \{39;Merhaba, hesabıma 5 kredi eklemek istiyorum>

    {
      "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. Temsilci bu konuda size yardımcı olabilir. Devam etmek için hesabınızda oturum açın. Bir kimlik doğrulama isteği önerisiyle birlikte.

    clientId ve scopes OAuth sağlayıcısı tarafından tanımlanır. Temsilci, codeChallenge değerini OAuth sağlayıcısının şartlarına göre oluşturur.

    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. Kullanıcı mesajı alır, kimlik doğrulama isteği önerisine dokunur ve hesabında oturum açar.

  6. Temsilci, authenticationResponse.code alanında OAuth yetkilendirme kodunu içeren bir mesaj alır.

    {
      "agent": "brands/1111/agents/2222",
      "conversationId": "3333",
      "customAgentId": "oauth",
      "requestId": "1234567895",
      "authenticationResponse": {
        "code": "fkhoe541658sfk684d135j186mngkjdrt5425415a2s1dfa68s4edf",
        },
      }
      "sendTime": "2020-10-02T15:01:24.045123456Z",
    }
    
  7. Aracı, bir erişim jetonu için yetkilendirme kodunu değişerek ve kullanıcının hesap bilgilerini getirerek OAuth sağlayıcıyla iletişim kurar.

  8. Temsilci oturum açtığı için &teşekkür eder. Şu anda 2 krediniz var. Teyit etmek için, hesabınıza 5 kredi eklememizi ve varsayılan ödeme yönteminizi "Evet" ve "Hayır" yanıtıyla verilmesini istemenizi öneririz.

    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. Kullanıcı "Evet" yanıtına dokunur.

    {
      "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. Temsilci, işlemi OAuth erişim jetonunu kullanarak işler, ardından "Mükemmel" mesajını gönderir. Hesabına 5 kredi ekledim. Yardımcı olabileceğim başka bir konu var mı?

    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. Kullanıcı "Hayır, teşekkürler" gönderir.

    {
      "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. Temsilci, bizimle iletişime geçtiğiniz için teşekkür eder. İyi günler dileriz!

    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'
      }
    }"