احراز هویت کاربر

نمایندگان معمولاً بینش کمی نسبت به کاربرانی که با آنها در ارتباط هستند، جدا از اطلاعاتی که کاربران در طول مکالمه می دهند، دارند. با این حال، نمایندگان می توانند برای تأیید هویت کاربر، شخصی سازی مکالمات و انجام اقداماتی از طرف کاربران، کاربران را با OAuth احراز هویت کنند.

در این جریان مکالمه، کاربر انتخاب می‌کند تا اعتبارات را به حساب خود اضافه کند، و نماینده از کاربر می‌خواهد وارد سیستم شود تا هویت کاربر را تأیید کند، اطلاعات شناخته شده کاربر را واکشی کند و برای اعتبارات سفارش دهد.

  1. کاربر مکالمه را با نماینده شروع می کند.
  2. هنگامی که کاربر شروع به تایپ پاسخ می کند، یک رویداد تایپ را برای نماینده ارسال می کند.

    {
      "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. کاربر "سلام، می خواهم 5 اعتبار به حساب خود اضافه کنم" را به عنوان پیام ارسال می کند.

    {
      "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. نماینده "من می توانم در این زمینه به شما کمک کنم. برای ادامه به حساب خود وارد شوید" را ارسال می کند. به همراه یک پیشنهاد درخواست احراز هویت

    clientId و scopes ها توسط ارائه دهنده OAuth تعریف می شوند. عامل مقدار codeChallenge را مطابق با الزامات ارائه دهنده 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. کاربر پیام را دریافت می کند، روی پیشنهاد درخواست احراز هویت ضربه می زند و به حساب خود وارد می شود.

  6. نماینده پیامی با کد مجوز OAuth در قسمت authenticationResponse.code دریافت می کند.

    {
      "agent": "brands/1111/agents/2222",
      "conversationId": "3333",
      "customAgentId": "oauth",
      "requestId": "1234567895",
      "authenticationResponse": {
        "code": "fkhoe541658sfk684d135j186mngkjdrt5425415a2s1dfa68s4edf",
        },
      }
      "sendTime": "2020-10-02T15:01:24.045123456Z",
    }
    
  7. نماینده با ارائه‌دهنده OAuth ارتباط برقرار می‌کند، کد مجوز را برای یک نشانه دسترسی مبادله می‌کند و اطلاعات حساب کاربر را واکشی می‌کند.

  8. نماینده ارسال می کند "از ورود به سیستم متشکریم. شما در حال حاضر 2 اعتبار دارید. برای تایید، می خواهید من 5 اعتبار به حساب شما اضافه کنم و روش پرداخت پیش فرض شما را صورتحساب کنم؟" به عنوان یک پیام با "بله" و "نه" به عنوان پاسخ های پیشنهادی.

    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. کاربر روی پاسخ پیشنهادی «بله» ضربه می‌زند.

    {
      "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. نماینده تراکنش را با استفاده از رمز دسترسی OAuth پردازش می کند، سپس پیام "عالی است. من فقط 5 اعتبار به حساب شما اضافه کردم. آیا چیز دیگری وجود دارد که بتوانم به شما کمک کنم؟" می فرستد.

    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. کاربر "نه، متشکرم" را ارسال می کند.

    {
      "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. نماینده ارسال می کند "از تماس با ما متشکرم. روز خوبی داشته باشید!"

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