Я использую Google Drive API с моим приложением Rails. API работает нормально. У меня есть следующий файл client_secret.json:
{
"type": "service_account",
"project_id": "gobirdie-landing-page",
"private_key_id": "xxxxx",
"private_key": "-----BEGIN PRIVATE KEY----- xxxxx -----END PRIVATE KEY-----\n",
"client_email": "xxxxxxx@gobirdie-landing-page.iam.gserviceaccount.com",
"client_id": "xxxxxxxxx",
"auth_uri": "xxxxxx",
"token_uri": "xxxxxxx": "xxxxxxxx": "xxxxxxxxx"
}
который вызывается в моем контроллере
@session = GoogleDrive::Session.from_service_account_key("client_secret.json")
С этой конфигурацией нет проблем, мне удается использовать API. Однако я хотел бы сохранить свой JSON в файле .env, например:
CLIENT_SECRET = "{
"type": "service_account",
"project_id": "gobirdie-landing-page",
"private_key_id": "xxxxx",
"private_key": "-----BEGIN PRIVATE KEY----- xxxxx -----END PRIVATE KEY-----\n",
"client_email": "xxxxxxx@gobirdie-landing-page.iam.gserviceaccount.com",
"client_id": "xxxxxxxxx",
"auth_uri": "xxxxxx",
"token_uri": "xxxxxxx": "xxxxxxxx": "xxxxxxxxx"
}"
И вызвать его в контроллере таким образом
@session = GoogleDrive::Session.from_service_account_key(ENV['CLIENT_SECRET'])
Или таким образом
@session = GoogleDrive::Session.from_service_account_key(JSON.parse(ENV['CLIENT_SECRET']))
Но ни один из методов не работает. Поэтому мой вопрос: «Можно ли сохранить файл JSON в переменной ENV?»