Установка конфигурационных переменных в Heroku не работает для GOOGLE_APPLICATION_CREDENTIALS

#node.js #heroku #dialogflow-es

# #node.js #heroku #dialogflow-es

Вопрос:

Я изучаю руководство по созданию чат-бота с использованием Google dialogflow и nodejs. Теперь я разворачиваю его в Heroku. Я не хочу добавлять учетные данные напрямую. Вместо этого я хочу добавить их с помощью конфигурационных переменных. Поэтому я создал отдельный файл для сохранения учетных данных, подобных этому.

 module.exports = {
    googleProjectID: process.env.GOOGLE_PROJECT_ID,
    dialogFlowSessionID: process.env.DIALOGFLOW_SESSION_ID,
    dialogFlowSessionLanguageCode: process.env.DIALOGFLOW_LANGUAGE_CODE,
    googleClientEmail : process.env.GOOGLE_CLIENT_EMAIL,
    googlePrivateKey : process.env.GOOGLE_PRIVATE_KEY
};
 

Затем я устанавливаю конфигурационные переменные через настройки heroku. Вот так…

введите описание изображения здесь

И я обещаю вам, что я добавил значения к этим ключам на 100% правильно. Но мое приложение выдает мне ошибки. Если просмотр «журналов heroku —tail» облегчает вам ответы, пожалуйста, используйте эту ссылку, чтобы просмотреть журнал heroku.

Но когда я использую приведенный ниже код вместо приведенного выше кода

 module.exports = {
    googleProjectID : "<real value>",
    dialogFlowSessionID : "<real value>",
    dialogFlowSessionLanguageCode : "<real value>",
    googleClientEmail : "<real value>",
    googlePrivateKey : "<real value>"
}
 

Я добавил значения напрямую, вместо использования ‘config var’. Тогда это работает без каких-либо проблем. Но я хочу сделать это с помощью конфигурационных переменных. Пожалуйста, помогите мне…….

Комментарии:

1. Я знаю, что я не добавил дополнительные коды. Но я понял, что проблема связана только с этим кодом. Поэтому я хочу знать, что с этим не так…

2. Быстрый вопрос, действителен ли ключ Google и правильно ли вы используете свой код process.env.<Name> без каких-либо опечаток? Я спрашиваю, потому что вы, похоже, правильно настроили свои ключи

3. @NtshemboHlongwane=> Извините, что спрашиваю. Но, пожалуйста, скажите мне, что вы подразумеваете под «ключом Google»? Что касается второго вопроса, я не использую process.env.<name> нигде в своем коде, кроме process.env.port . Я использую эти имена объектов вместо использования process.env.<имя>

4. Разве у вас не возникли проблемы с тем, что ключ Google здесь не работает? Итак, я спрашиваю, не истек ли срок его действия? Во-вторых, когда у вас есть вы env vars в своих конфигурациях heroku, почему бы вам не отказаться от способа обработки вещей и доступа к ним напрямую с помощью process.env.<Name of var>

5. ОК. Когда я использую эти значения учетных данных напрямую, это не дает мне никаких ошибок. Поэтому я думаю, что срок действия ничего не истек. Во-вторых, я попытался env vars получить прямой доступ, как вы сказали. Но, к сожалению, это ничего не исправило или ничего не изменило.