مصادقة المستخدم

عادةً ما يكون لدى الوكلاء إحصاءات قليلة عن المستخدمين الذين يتواصلون معهم بصرف النظر عن المعلومات التي يقدمها المستخدمون أثناء المحادثة. ومع ذلك، يمكن للوكلاء مصادقة المستخدمين باستخدام 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. يرسل المستخدم &;مرحبًا، I'd لإضافة 5 أرصدة إلى حسابي&quot، كرسالة.

    {
      "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. يرسل الوكيل &quot،يمكنني مساعدتك في ما تريد. سجّل الدخول إلى حسابك للمتابعة.&quot؛ مع اقتراح طلب المصادقة.

    يتم تحديد clientId وscopes من خلال موفِّر بروتوكول OAuth. يُنشئ الوكيل قيمة codeChallenge وفقًا لمتطلبات OAuth لموفِّر 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. يُرسِل الوكيل "شكرًا لك على تسجيل الدخول. لديك حاليًا رصيدان. وللتأكّد من ذلك، تريد منّا إضافة 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 أرصدة إلى حسابك. هل هناك أي شيء آخر يمكنني مساعدتكَ فيه بخصوص quot؟

    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. يُرسل المستخدم &&;لا; شكرًا&quot.

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