重定向到 G+ 个人资料需要“https://plus.google.com/<\profile_id>/posts”格式。我的问题是我还没有找到如何为网站用户动态获取 profile_id 的解决方案。我当前的 django-social-auth 实现(未保存在数据库中)没有获取它,并且 google-oauth2 帐户记录的 UID 字段保存了 google 电子邮件,也许如果我能找到如何重定向到的实现使用电子邮件的 G+ 个人资料,这很好(尽管一些消息来源说目前不可能)。
问问题
2001 次
2 回答
2
无法使用 Google+ API 从用户的电子邮件地址中确定用户的个人资料 ID。
但是,如果您能够通过 OAuth 2.0 流程发送用户,则可以使用 REST API 的people get 方法确定他们的个人资料 ID 。如果您使用的是Google 的 API Python 客户端库,代码将如下所示:
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']
您还可以在Google+ Python 入门应用中找到更完整的示例
于 2012-05-03T17:21:47.813 回答
2
用户 ID 是 google 在 OAuth2 工作流程中发送的数据的一部分,您可以通过以下方式存储它然后访问它:
定义此设置:
GOOGLE_OAUTH2_EXTRA_DATA = [('id','id')]
访问标识:
社交 = user.social_auth.get(provider='google-oauth2')
profile_id = social.extra_data['id']
于 2012-05-07T22:46:59.417 回答