10

プロジェクトでDjango-allauthをセットアップしようとしています。このエラーが発生しましたが、修正できません。

環境:

Request Method: GET Request URL: `http://localhost:8000/accounts/login/`

Django Version: 1.4.2 Python Version: 2.7.3 
Installed Applications:
('django.contrib.auth',  
'django.contrib.contenttypes', 
'django.contrib.sessions',  
'django.contrib.sites', 
'django.contrib.messages',  
'django.contrib.staticfiles',  
'core', 
'allauth',  
'allauth.account',  
'allauth.socialaccount', 
'allauth.socialaccount.providers.facebook', 
'allauth.socialaccount.providers.twitter',  
'django.contrib.admin', 
'django.contrib.admindocs') 

インストール済みミドルウェア:

('django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware')


Template error: In template
/media/Dump/Sites/wtr/allauth/templates/socialaccount/snippets/login_extra.html,
error at line 3    No Facebook app configured: please add a SocialApp
using the Django admin    

       1 : {% load socialaccount %}
       2 : 
       3 :  {% providers_media_js %} 
       4 : 
       5 :

実際に Django Admin で facebook アプリを構成しましたが、なぜこの例外が発生するのか理解できません。

 Exception Type: ImproperlyConfigured at /accounts/login/ Exception
 Value: No Facebook app configured: please add a SocialApp using the
 Django admin
  • allauthアプリをに追加しましたINSTALLED_APPLICATIONS
  • TEMPLATE_CONTEXT_PROCESSORSその設定を追加しました
  • 設定を編集した、AUTHENTICATION_BACKENDS
  • に追加されallauthた URLurls.py

必要な作業はこれだけですか、それとも他にもありますか? はいの場合、関連するドキュメントを教えてください。

4

7 に答える 7

13

ここでも同じ問題があり、問題は SITE_ID で、デフォルトでは 1 です。ただし、管理パネルを表示するとデフォルトで表示されるサンプル サイトには 1 が割り当てられます。Facebook ログインを構成するためのサイトを作成した後、settings.py で SITE_ID=2 を置き換えたところ、機能しました。もう 1 つのオプションは、サンプル サイトを削除することですが、ある時点でデータベースを削除して再度作成すると、再び表示されます。

これに気付くまでに3時間ほどかかりました... :S

于 2014-07-30T14:11:03.757 に答える
5

私は同じ問題を抱えていましたが、いくつかの説明が他の人に役立つと思います.django-allauthはdjango-sitesを使用しているため、非常に混乱する可能性があります.

ソーシャル アプリを構成しているときに、誤ってサイトを追加してしまうのは非常に簡単です。

物事を機能させるには、設定の SITE_ID が、Facebook アプリで有効にし、django バックエンドのソーシャル アプリで選択したドメインと一致することを確認する必要があります。これら 3 つの場所のいずれかで指定されたサイトが間違っていると、「不適切に構成されています...」というエラーが発生します。

私のように、最初からすべてがうまくいかない場合は、これを実行して Facebook 認証を機能させます。

  1. Facebook アプリに移動し、「サイト URL」を記録します。これは、Facebook アプリが認証する唯一のサイトです。テスト用に「 」を使用してhttp://localhost:8000います。これを mysite と呼びます。
  2. django admin で Facebook ソーシャル アプリに移動し、「選択したサイト」の唯一のサイトとしてmysiteがあることを確認します。リストにない場合は、admin/sites を使用して追加します。
  3. admin/sites に移動し、そこにあるべきではないものをすべて削除します。
  4. phpmyadmin などを使用して django_site テーブルを確認し、 mysite の site_id を記録します
  5. SITE_ID がmysite IDに設定されるように設定を更新します。

サーバーを実行すると、facebook 認証が機能するはずです。

于 2013-07-18T07:44:12.877 に答える
1

私にとってうまくいったのは、Available Sites の下で(この場合はデフォルトの SITE_ID 名であるexample.com ) を選択し、右側のChosen Sitesに追加してから、ソーシャル アプリケーションの作成時に保存することでした。

サンプル サイトを右側のペインに追加します

于 2015-07-11T22:46:45.737 に答える
0

settings.pyのsite_idは、サイトの django 管理者エントリと一致する必要があります (テスト中は localhost:8000 である可能性があります)。これは、「サイト」見出しの下の「サイト」の選択肢にあります (これも管理画面にあります)。あなたのsite_id...を取得するには、「サイト」をクリックしてください。注: 2 つのエントリがあり、2 番目があなたのものだからといって、site_id = 2. エントリをクリックし、アドレス バーに番号を書き留めます。これは上記および他の場所でカバーされていますが、コーディングに慣れていないので、より明確な指示が必要でした。 写真の3が見えますか?「サイト」の 2 つのエントリのうちの 2 つ目でした

于 2016-03-09T03:42:46.143 に答える