Django: SocialApp matching query does not exist

masterofdestiny picture masterofdestiny · Mar 14, 2013 · Viewed 27.2k times · Source

I'm using django-allauth, and I configured localhost:9000/admin/ with the following details:

socialapp .
provider:
Name:
Client id:
App ID, or consumer key
Key:
Secret:  etc .

I set SITE_ID = 2 (because I changed the default site example.com to localhost:9000)

In settings.py:

   INSTALLED_APPS = (
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.sites',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'django.contrib.admin',
        'uni_form',
        'allauth',
        'allauth.account',
        'allauth.socialaccount',
        'bootstrapform',
        # 'allauth.socialaccount.providers.twitter',
        # 'allauth.socialaccount.providers.openid',
         'allauth.socialaccount.providers.facebook',
    )
    SOCIALACCOUNT_PROVIDERS = \
        { 'facebook':
            { 'SCOPE': ['email', 'publish_stream'],
              'AUTH_PARAMS': { 'auth_type': 'reauthenticate' },
              'METHOD': 'oauth2' ,
              'LOCALE_FUNC': 'path.to.callable'} }

When I go to:

http://localhost:9000/accounts/facebook/login

I get:

Error :  `SocialApp matching query does not exist.

What am I doing wrong?

Answer

pennersr picture pennersr · Mar 15, 2013

Using the Django admin you need to create a SocialApp listing your Facebook app credentials. Make sure that this app is attached to the proper site (as in, django.contrib.sites.models.Site).

In your case, there needs to be a django.contrib.sites.models.Site instance with id=2 (check the sites admin) that is listed as a site for the SocialApp.

If either the SocialApp is missing, or if it is created but not attached to a site matching your settings.SITE_ID, then allauth does not know what app to pick, resulting in the error message you listed above.