0

ローカルでホストしていたときは Fb でのログインは正常に機能していましたが、heroku で問題が発生しています。アプリに関連付けられている FB のドメインを localhost:3000 から myapp.herokuapp.com に既に更新しました

また、このスレッドomniauth で facebook が本番環境で動作していないことを確認し、'client_options' ハッシュを初期化ファイルに追加しようとしましたが、まだ問題が発生しています。これが関連しているかどうかはわかりませんが、/usr/lib/ssl/certs/ca-certificates.crt に移動しようとすると、「そのようなファイルまたはディレクトリはありません」というエラーが表示されます。

アプリ ( http://playedbyme.herokuapp.com/ )で FB へのログインをクリックすると、コールバック エラーが発生します。

私の OmniAuth 初期化ファイルは次のようになります。

  Rails.application.config.middleware.use OmniAuth::Builder do
    provider :facebook, 'MY_APP_ID', 'MY_SECRET_KEY',
      {:client_options => {:ssl => {:ca_file => '/usr/lib/ssl/certs/ca-certificates.crt'}}}
  end

更新: データベースに何らかの問題があると思います。「heroku run rake db:migrate」を実行すると、エラーが発生します

   rake aborted!
   An error has occurred, this and all later migrations canceled:
   PG::Error: ERROR:  column "id" of relation "parties" already exists
   : ALTER TABLE "parties" RENAME COLUMN "party_id" TO "id"

しかし、Parties テーブルに party_id という名前の列がありません

4

1 に答える 1

0

CA 証明書のパスが正しいことを確認する必要があります。次のコマンドを実行して、heroku サーバーで確認できます。

heroku run bash

次に、openssl を実行して適切なパスを表示します。

$ openssl version -a
 OpenSSL 1.0.0e 6 Sep 2011 
 OPENSSLDIR: "/usr/lib/ssl"

$OPENSSLDIR/certs/ca-certificates.crt で ca_certificates.crt ファイルを見つける必要があります。

のomniauth セットアップscopeに従って、Facebook のアクセス許可も指定していることを確認してください。config/initializers/omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, 'YOUR_APP_ID', 'YOUR_SECRET_KEY',
           {:scope => 'PERMISSION_1, PERMISSION_2, ETC', :client_options => {:ssl => {:ca_file => '/usr/lib/ssl/certs/ca-certificates.crt'}}}
end

また、このファイルに変更を加えた後は、レールを再起動してください。

編集

DB の問題を解決するには、DB をリセットして再作成することを検討してください。

heroku pg:reset DATABASE --confirm YOUR_APP_NAME
heroku run rake db:setup
heroku restart
heroku open
于 2012-12-10T00:25:23.567 に答える