Что означает «suppressed_by_user» при использовании Google One Tap? - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь, чтобы одно касание отображалось при входе пользователя в систему. Приведенный ниже код прекрасно работает, когда он запускается сразу после загрузки страницы, но если я пытаюсь запустить его при нажатии, появляется ошибка. suppressed_by_user ошибка У меня не работает плагин для блокировки рекламы, и я не знаю, что может означать suppressed_by_user?

документы здесь подробно описывают ошибку, но не объясняют, что вызвал это или как это исправить.

<script src="https://accounts.google.com/gsi/client"></script>
... 
  const signin = () => {
    const handleCredentialResponse = (response: any) => {
      const credential = response.credential;
      const getDetails = async () => {
        const params = new window.URLSearchParams({ credential });
        const url = `${process.env.REACT_APP_API_BASE_URL}/google?${params}`;
        const response = await fetch(url, { method: "GET" });
        const data = await response.json();
        setLoggedIn(true);
        setState({ ...state, participant: data.participant });
      };
      getDetails();
    };
    if (state && state.participant && state.participant.id) {
      setLoggedIn(true);
    } else {
      const client_id = process.env.REACT_APP_GOOGLE_CLIENT_ID;
      const callback = handleCredentialResponse;
      const auto_select = false;
      const cancel_on_tap_outside = false;
      google.accounts.id.initialize({ client_id, callback, auto_select, cancel_on_tap_outside });
      google.accounts.id.prompt((notification: any) => {
        console.log(notification); // rl {g: "display", h: false, j: "suppressed_by_user"}
        console.log(notification.getNotDisplayedReason()); // suppressed_by_user
      });
    }
  };
...
<div className="center--main-join" onClick={signin}>Sign in or Join</div>

1 Ответ

1 голос
/ 27 апреля 2020

Это означает, что пользователь вручную закрывал приглашение One Tap ранее, которое вызывало функцию охлаждения (как указано в: https://developers.google.com/identity/one-tap/web/guides/features#exponential_cool_down).

Во время периода охлаждения One Подсказка к нажатию подавлена.

...