Facebook JavaScript SDK Не возвращает код авторизации для встроенной регистрации в WhatsApp в Django

Я пытаюсь реализовать встроенную регистрацию в WhatsApp с помощью Facebook SDK, но функция FB.login() не возвращает ожидаемый код авторизации в функции обратного вызова. Ниже приведена моя реализация в виде официальной документации здесь

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Embedded Signup</title>
</head>
<body>

<!-- SDK loading -->
<script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js"></script>

<script>
  // SDK initialization
  window.fbAsyncInit = function() {
    FB.init({
      appId: 'appId', // my app ID
      autoLogAppEvents: true,
      xfbml: true,
      version: 'v22.0' // Graph API version
    });
  };

  // Session logging message event listener
  window.addEventListener('message', (event) => {
    if (event.origin !== "https://www.facebook.com" && event.origin !== "https://web.facebook.com") return;
    try {
      const data = JSON.parse(event.data);
      if (data.type === 'WA_EMBEDDED_SIGNUP') {
        console.log('message event: ', data); // Debugging log
      }
    } catch {
      console.log('message event: ', event.data); // Debugging log
    }
  });

  // Response callback
  const fbLoginCallback = (response) => {
    if (response.authResponse) {
      const code = response.authResponse.code; // Expected authorization code
      console.log('response: ', code); // Debugging log
    } else {
      console.log('response: ', response); // Debugging log
    }
  };

  // Launch method and callback registration
  const launchWhatsAppSignup = () => {
    FB.login(fbLoginCallback, {
      config_id: 'config_id', // my configuration ID
      response_type: 'code',
      override_default_response_type: true,
      extras: {
        setup: {},
        featureType: '',
        sessionInfoVersion: '3',
      }
    });
  };
</script>

<!-- Launch button -->
<button onclick="launchWhatsAppSignup()" style="background-color: #1877f2; border: 0; border-radius: 4px; color: #fff; cursor: pointer; font-family: Helvetica, Arial, sans-serif; font-size: 16px; font-weight: bold; height: 40px; padding: 0 24px;">Login with Facebook</button>

</body>
</html>

Вот простая функция в Django для запуска html-страницы

@csrf_exempt

def hello_view(request):
    return render(request, 'test.html')

Нажатие кнопки "Войти с помощью Facebook" запускает функцию регистрации WhatsApp(), но объект authResponse в обратном вызове не содержит ожидаемого кода авторизации. Похоже, что Django не ждет, пока пользователь завершит регистрацию. Это происходит сразу же после того, как я нажимаю на кнопку. Однако, когда я пробую этот html-код в собственном JavaScript, он работает должным образом. Какое решение для этого?

Вернуться на верх