django-socialauth
アカウント (この場合は instagram アカウント) を既存のユーザー アカウントに関連付けることに成功しました。また、パイプラインをセットアップして、追加のユーザー詳細を収集しました。
def update_social_auth(backend, details, response, social_user, uid, user,
*args, **kwargs):
if getattr(backend, 'name', None) in ('instagram', 'tumblr'):
social_user.extra_data['username'] = details.get('username')
social_user.save()
これは、アカウントが初めて関連付けられたときにうまく機能します。ただし、アカウントがすでに関連付けられている場合、username
フィールドは に表示されませんextra_data
。
extra_data
関連付けが既に行われた後、ユーザーを更新するにはどうすればよいですか? django-socialauth
切断して再接続したり、アカウント (Instagram など) の API を使用したりせずにこれを行う方法はありますか?
それが役立つ場合、これは現時点での私のパイプラインです:
SOCIAL_AUTH_PIPELINE = (
'social_auth.backends.pipeline.social.social_auth_user',
'social_auth.backends.pipeline.social.associate_user',
'social_auth.backends.pipeline.social.load_extra_data',
'social_auth.backends.pipeline.user.update_user_details',
'apps.utils.social.utils.update_social_auth'
)