質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

1回答

845閲覧

本番環境のfacebook認証で困っています (エラー:⚠️ アプリIDが無効なものです)

taku103

総合スコア7

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/05/27 02:03

編集2020/05/27 02:11

rails5.2.4.1, AWS, linuxです。
本番環境でfacebook認証を試したところ、以下のようなエラーが出ました。


⚠️ アプリIDが無効なものです
指定されたアプリIDは無効なアプリIDのようです。
・ホームに戻る


状況:
ローカル環境ではログインに成功しています。データベースにもuser情報がちゃんと登録されました。

考察:
.envに

FACEBOOK_ID=<自分のFACEBOOK_ID> FACEBOOK_SECRET_KEY=<自分のFACEBOOK_SECRET_KEY>

と記述しており、gitignoreに.envしていたためgithubに.envファイルがありませんでした。
これをcapistranoでdeployしているので、本番環境に.envファイルがないのではないかと思いコマンドを打って調べてみるとやはりありませんでした。

調ベてやって見たこと:
.envファイルを

[ec2-user@ip-<ipアドレス> <アプリ名>]$touch .env [ec2-user@ip-<ipアドレス> <アプリ名>]$vi .env

で中身をローカルと同じように

FACEBOOK_ID=<自分のFACEBOOK_ID> FACEBOOK_SECRET_KEY=<自分のFACEBOOK_SECRET_KEY>

と書き換えてnginx, unicorn, mysqldなど再起動をしてからデプロイしてみましたが同じエラーが出ました。

また、facebookのサイトURLを設定->ベーシックの下の方でhttp://localhost:3000/からhttp://[自分のIPアドレス]/に変えました。

一日中考えてもわかりません(;_;)よろしくお願いします????‍♀️

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_1985

2020/05/27 02:51

.envはどこに配置していて、デプロイはどのような流れで行われているのでしょうか。
taku103

2020/05/27 03:09

質問ありがとうございます! アプリ名直下に配置しています。 元々facebook認証は抜きでデプロイしてcapistranoで自動化しました。後からfacebook認証を追加しました。
yu_1985

2020/05/27 03:17

聞き方がちょっと悪かったですね。 capistranoでのデプロイの具体的な流れと、デプロイされるもののディレクトリ構成、その中で.envがどこに置かれているのか、というのが確認したかったポイントです。 ただ、恐らくですが予想はついたので回答します。
guest

回答1

0

.envをアプリのディレクトリ直下に置いているのなら、.envを修正した後にアプリをデプロイしたら.envが上書きされてしまうのではないでしょうか。
デプロイ時に.envを生成して読み込む形にするか、アプリのデプロイに影響を受けないところに配置して読み込むときに配置した先の.envを参照できるようにしましょう。
※念の為ですが、値を入れた.envをGitにコミットするのは事故の元なのでやめましょう。

投稿2020/05/27 03:20

編集2020/05/27 03:21
yu_1985

総合スコア7588

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

taku103

2020/05/27 03:31

回答ありがとうございます! ただcapistranoでデプロイした後にもう一度 ``` [ec2-user@ip-<ipアドレス> <アプリ名>]$vi .env ``` を本番環境で打つと、中身がデプロイ前保存した通り ``` FACEBOOK_ID=<自分のFACEBOOK_ID> FACEBOOK_SECRET_KEY=<自分のFACEBOOK_SECRET_KEY> ``` になっています。
taku103

2020/05/27 06:53

いろいろな記事を調べていたところ、こんなのを見つけました。 facebookはHTTPSしか有効なOAuthリダイレクトURIに登録出来ません。 なので、開発環境なら誰でも使用出来ますがデプロイ後はHTTPSに変更する必要があります。 https://qiita.com/mailok1212/items/74e6dae08c1bafb874ec の注意事項 HTTPにしているのが原因なのでしょうか。。。
taku103

2020/05/27 07:28

rails cコマンドでコンソールを開き、ENV['FACEBOOK_ID']を開発環境、本番環境両方で打ち込んでみたところ、開発環境ではFACEBOOK_IDが表示されましたが本番環境ではnilとなり、表示されませんでした。ここに何かあるんでしょうか。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問