我正在使用 Django 启动一个项目,并尝试允许用户使用 Facebook 登录。出于网站目的,我想将用户喜欢存储在我的数据库中。
我以 Python Social Auth(我用于该项目的库)上的示例应用程序为例,并且编写了一个用于在数据库中存储数据的管道。
当我尝试访问“likes”时,问题就出现了,因为我得到的响应数据只提供了基本数据,所以下面的代码不起作用。
def user_details(strategy, details, response, user=None, *args, **kwargs):
attrs = {'user': user}
if strategy.backend.__class__.__name__ == 'FacebookOAuth2':
#no response['likes']
for i in response['likes']:
for d in i['data']:
p = UserPreferences(user=user,like=d['name'])
p.save()
我在 Facebook 中的应用程序要求点赞权限,我的 settings.py 上有以下内容(包含秘密和所有这些内容):
SOCIAL_AUTH_SCOPE = ['user_likes']
有办法让这个工作吗?
重命名设置SOCIAL_AUTH_SCOPE
to SOCIAL_AUTH_FACEBOOK_SCOPE
。授权过程中不会自动发送点赞,您需要向 Facebook API 查询它们,例如:
def get_likes(strategy, details, response, *args, **kwargs):
if strategy.backend.name == 'facebook':
likes = strategy.backend.get_json(
'https://graph.facebook.com/%s/likes' % response['id'],
params={'access_token': response['access_token']}
)
for like in likes['data']:
pass # Process and save likes here
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)