Существует три подхода к решению вашей общей проблемы - ввод URL-адреса вручную и доступность для вашего действия. Два из них решают эту проблему так, как вы предлагали, - включая аутентификацию в Facebook и привязывание ее к учетной записи Assistant. Один решает это полностью внутри Помощника.
Учетная запись, связывающая с учетной записью Facebook
Вы пометили firebase-authentication, поэтому я собираюсь предположить, что вы используете его для аутентификации и включили вход через Facebook через него. Это означает, что у вашего пользователя есть «Учетная запись Firebase», но они входят в эту учетную запись с помощью Facebook.
Я предполагаю, что у вас есть способ получить URL от мессенджера после его входа в систему.
Хитрость в этом случае заключается в настройке Связывания учетной записи между их учетной записью Firebase и учетной записью Assistant. Это делается путем настройки сервера OAuth2 , который имеет доступ к учетным записям Firebase и будет создавать авторизацию и обновлять токены, которые предоставляются помощнику.
В действии вы отправите пользователя к помощнику для входа в систему , который перенаправит его на страницу входа и отправит однократный код авторизации помощнику. Затем помощник будет использовать ваш сервер OAuth2 для обмена этим кодом на аутентификацию и обновления токенов. Периодически он будет использовать токен обновления для получения новых токенов авторизации.
Когда пользователь возвращается к беседе через Ассистента, вам будет выдан токен авторизации, и вы сможете использовать его для поиска пользователя. Поскольку вы также знаете их учетную запись Facebook, вы можете получить URL-адрес, как и планировали.
У этого метода есть недостатки - он очень сложный, и настройка собственного сервера OAuth2 не для слабонервных. Вы можете использовать что-то вроде Auth0 вместо Firebase Authentication для выполнения той же задачи, но тогда у вас не будет легкого доступа к базе данных Firebase.
Учетная запись связана как с Facebook, так и с Google
Однако в вашей учетной записи Firebase вам не нужно ограничивать их только входом в Facebook. Вы можете сделать так, чтобы они использовали Firebase для записи и учетных записей Facebook и Google, которые они используют. Это "свяжет" две учетные записи в вашей системе.
При этом вам не нужно настраивать сервер OAuth2. Вместо этого помощник может использовать Google Sign In для аутентификации. Если облачный проект Google, который использует Firebase, и помощник - это один и тот же проект, то, как только пользователь войдет на веб-страницу вашего проекта со своей учетной записью Google, вы получите идентификационный токен на помощнике, который будет содержать его Google ID. Вы можете использовать это, чтобы сопоставить их с учетной записью Firebase, получить идентификатор Facebook и продолжить оттуда.
Но это все еще много работы и немного запутанно, прыгать между системами.
Использование только Google Assistant (и, возможно, веб-страницы)
Если вы хотите сделать некоторые предположения об устройствах, которые используют ваши пользователи, то вы можете сделать все это всего с помощью Ассистента. Помощник работает не только на Google Home и других интеллектуальных колонках, но и на большинстве современных устройств Android и iOS.
Таким образом, вы можете определить, есть ли у них в наличии такое устройство , и, если они есть, и его нет на нем, направить их на переключение на это устройство , когда вам нужно URL.
Если у них нет такого доступного устройства (возможно, потому что их версия Android старше), и вы думаете, что это может быть распространенным сценарием, вам может потребоваться сделать доступным другой источник ввода. Это может быть одно из приведенных выше решений, или вам может потребоваться просто иметь простую веб-страницу (возможно, через Firebase Hosting и Firebase Functions), где они входят в систему, используя свою учетную запись Google (чтобы вы получали их ID), и вы позволяете им введите URL. Если вам просто нужен URL-адрес - прохождение Dialogflow может оказаться более сложным, чем вам нужно.