2017-01-11 34 views
0

GoogleカレンダーAPIを自分のRailsアプリに統合しようとしているので、アプリからGoogleカレンダーの予定を作成できます。Google APIの.jsonキーファイルはどこに置くのですか?

Googleはclient_secret.jsonファイルを提供しています。私はそれをローカルで使うことができますが、今ではherokuにキーファイルを実装する方法はわかりません。

誰もがこれを手伝ってくれますか?

答えて

1

これは、秘密キーと名前(名前と値)である必要があります。

herokuでは、環境変数として設定できます。これと同じように:

heroku config:set GOOGLE_SECRET=8N029N81ASLDKFA823_WO4ANF 

(しかし、あなたのJSONファイルで提供された情報を使用してください)。次のステップでは、アプリケーションがこれらのキーを1つの方法で呼び出すようにします。オプションは、config/secrets.ymlファイルを使用することです。秘密ファイルの環境変数を呼び出します。次に、開発中のdotenv gemを使用して、アプリケーションのルートにすべてのenvファイルを置く.envファイルを持つことができます(ただし、.envファイルはチェックインしないでください)。

ファイルを作成しますconfig/secrets.yml存在し、その中に追加します。

production: 
    google_secret: ENV['GOOGLE_SECRET'] 

development: 
    google_secret: ENV['GOOGLE_SECRET'] 

(明らかに、再び、名前はあなたが何を選ぶかであることを確認してください)

次はあなたの宝石のファイルおよび実行バンドルにdotenv追加

gem 'dotenv-rails', :groups => [:development, :test] 

アプリケーションのルートに.envという名前の新しいファイルを作成します。キー名と値の両方を直接含む変数を追加します。

GOOGLE_SECRET=8N029N81ASLDKFA823_WO4ANF 

必要なだけ多くのenv変数を追加できます。

.gitignoreファイルを編集し、.envファイルを追加して、誤って個人情報をチェックインしないようにします。あなたは、環境変数を使用する必要がある任意の場所で

最後に、そのような秘密からそれを呼び出すことです:

Rails.application.secrets.google_secret 

私はそれがステップの多くのように思えるけど、それはあなたを保証しますdevはあなたのコードにif Rails.env.development?文をたくさん作成することなく、あなたのprodにマッチします。

+0

私は実際それをやろうとしました。私はjsonファイルから秘密とidを設定しましたが、それは動作しません。 Googleクライアントはファイル自体を探しています。 – NeyLive

+0

どのGoogleクライアントですか? – trh

+0

GoogleのAPIクライアントgem [ドキュメントのリンク](https://developers.google.com/google-apps/calendar/quickstart/ruby) – NeyLive

関連する問題