<a id="qq"></a>

# QQ

<a id="backend-class"></a>

## Backend class

For Django, add this class path to `AUTHENTICATION_BACKENDS`. For other
integrations, use the same class path in the framework-specific backend
setting.

| Backend name   | Class path                         |
|----------------|------------------------------------|
| `qq`           | `social_core.backends.qq.QQOAuth2` |

QQ implemented OAuth2 protocol for their authentication mechanism. To enable
`python-social-auth` support follow this steps:

1. Go to [QQ](http://connect.qq.com/) and create an application.
2. Fill App Id and Secret in your project settings:
   ```default
   SOCIAL_AUTH_QQ_KEY = '...'
   SOCIAL_AUTH_QQ_SECRET = '...'
   ```
3. Enable the backend:
   ```default
   SOCIAL_AUTH_AUTHENTICATION_BACKENDS = (
       ...
       'social_core.backends.qq.QQOAuth2',
       ...
   )
   ```

The values for `nickname`, `figureurl_qq_1` and `gender` will be stored
in the `extra_data` field. The `nickname` will be used as the account
username. `figureurl_qq_1` can be used as the profile image.

Sometimes nickname will duplicate with another `qq` account, to avoid this
issue it’s possible to use `openid` as `username` by define this setting:

```default
SOCIAL_AUTH_QQ_USE_OPENID_AS_USERNAME = True
```
