我们的应用程序从access_token中获取facebook session_key,但是我今天发现access_token格式改变了,access_token的返回值没有分隔符'|',我无法获取新格式的session_key,请帮助我。
这是新的 access_token:AAACNiIlBuO0BACgjrbFp1a8dAUxP4t0ojVElFA88aJFVxG3gISvETafwEUzbMzLPxAVcTUWXyUJaBgy1OxBQHdneW1v0ZD
我们的应用程序从access_token中获取facebook session_key,但是我今天发现access_token格式改变了,access_token的返回值没有分隔符'|',我无法获取新格式的session_key,请帮助我。
这是新的 access_token:AAACNiIlBuO0BACgjrbFp1a8dAUxP4t0ojVElFA88aJFVxG3gISvETafwEUzbMzLPxAVcTUWXyUJaBgy1OxBQHdneW1v0ZD
我知道问题出在哪里,应用设置中的“OAuth 迁移”设置已启用,它将返回一个加密的访问令牌。
该 cookie 名为 fbsr_APP -ID,它包含签名的请求。当您解析该签名请求时,您不会立即获得访问令牌,而是需要再次使用 facebook 进行身份验证的代码。该方法与标准登录的签名请求几乎相同,但不完全一样。redirect_uri 必须是空字符串。并且任何 " 都需要删除。用户 id 在签名请求中仍然可以直接使用:
{u'issued_at': 1316611903,
u'code': u'2.AQB0gn0ueVWMpj-c.3600.1316617200.1-684450912|RTJur1Zmr__4d4uX5vg25tc1X4M',
u'user_id': u'*USER-ID*', u'algorithm': u'HMAC-SHA256'}
来自身份验证的响应也发生了变化。之前它是一个包含访问令牌的 URL 编码字符串。现在它还包含一个 expires 值:令牌有效的秒数。它看起来像这样:
access_token="AAADYZBFNocBMBAK8Z.....2CljZAk1xX4rd9quEoXTygZDZD"&expires=6295