Я пытаюсь позвонить в приложение Dialogflow с веб-страницы.API V1, по-видимому, не поддерживает CORS, но поле «Попробуйте этот API» на справочной странице deteIntent API показывает пример Javascript, который включает в себя элементы <script>
и <button>
DOM, поэтому я предполагаю, чтоV2 поддерживает CORS.
Хотя я немного запутался в аутентификации OAuth 2.0 - требуется ли пользователю входить в учетную запись Google?
v2-auth-setupНа странице описан процесс создания учетной записи службы и сохранения файла закрытого ключа JSON, но у меня есть две проблемы:
Панель «Разрешения» в облачной консоли »Страница «Учетные записи служб» подразумевает, что учетная запись службы наследует «Редактор», «Владелец», «Агент службы Compute Engine» и другие роли, но эта учетная запись службы не должна наследовать какие-либо роли, она должна быть заблокирована.
Все это подразумевает, что мне нужно предоставить файл "secretts.json" широкой публике.Даже если это просто учетная запись с ограниченным доступом, это кажется неправильным.
Возможно, я неправильно понимаю этот бит?
gapi.load("client:auth2", function() {
gapi.auth2.init({client_id: "YOUR_CLIENT_ID"});
});
... означает ли это, что при вызове следующего пользователя пользователь (даже если у него нет учетной записи Google) регистрируется как «YOUR_CLIENT_ID» без каких-либо всплывающих окон / перенаправлений входа в систему?
gapi.auth2.getAuthInstance()
.signIn({scope: "https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/dialogflow"})
...Консоль Dialogflow предоставляет токены доступа клиента и разработчика V1, но откуда мне взять YOUR_CLIENT_ID?