重定向到G +个人资料需要“https://plus.google.com/<\profile_id>/posts”格式。我的问题是我还没有找到关于如何为网站用户动态获取profile_id的解决方案。它不是由我当前实现的django-social-auth(未保存在数据库中)获取的,并且google-oauth2帐户记录的UID字段保存了google电子邮件,也许我可以找到如何重定向到a G +配置文件使用电子邮件,这样会很好(虽然有些消息来源说目前不可能)。
答案 0 :(得分:2)
无法使用Google+ API通过其电子邮件地址确定用户的个人资料ID。
但是,如果您能够通过OAuth 2.0流程发送用户,则可以使用REST API的people get method确定其配置文件ID。如果您使用Google's API Python client library,代码将如下所示:
import apiclient.discovery
import httplib2
flow = OAuth2WebServerFlow(
client_id=client_id,
client_secret=client_secret,
scope='https://www.googleapis.com/auth/plus.me',
user_agent='google-api-client-python-plus-cmdline/1.0',
xoauth_displayname='Google Plus Client Example App'
)
credentials_file = 'plus_auth.dat'
storage = Storage(credentials_file)
credentials = run(flow, storage)
http = credentials.authorize(http)
service = apiclient.discovery.build('plus', 'v1', http=http, developerKey=api_key)
people_resource = service.people()
people_document = people_resource.get(userId='me').execute()
print "ID: " + people_document['id']
中找到更完整的示例
答案 1 :(得分:2)
用户ID是Google在OAuth2工作流程中发送的数据的一部分,以下是存储它然后访问它的方式:
定义此设置:
GOOGLE_OAUTH2_EXTRA_DATA = [ ('id','id') ]
访问ID:
social = user.social_auth.get(provider ='google-oauth2')
profile_id = social.extra_data ['id']