使用加密访问令牌格式登录 Facebook XMPP
Posted
技术标签:
【中文标题】使用加密访问令牌格式登录 Facebook XMPP【英文标题】:Logging into Facebook XMPP with encrypted access token format 【发布时间】:2011-10-12 10:25:48 【问题描述】:我的 accessToken 有问题!!
accessToken 一直没问题。
标准格式:AAA|BBB|CCC
我可以从给定的 accessToken(AAA|BBB|CCC) 中获取可用的当前用户的 uid 和会话密钥
但是今天fb服务器出乎意料地给了我一个奇怪的accessToken。它对xmpplogin没有用。
例如。 AAACmERnbMSwBAB3XnOt4hnR71agtbo3CE8w2Xd7jD7QEURSiiOFV1Eg85tHsaHvVNobiUFppqzQcaXKjWOVSZCIFKvVsEJ4llZBfNI6AZDZD
你能给我一个线索吗?我整天都在寻找答案。
【问题讨论】:
我今天登录时会收到类似的访问令牌,但这并不妨碍我使用任何功能。 (我正在使用 Facebook C# SDK) @fansmey 您没有使用新的访问令牌获得所需的信息吗? 【参考方案1】:根据https://developers.facebook.com/blog/post/572/,访问令牌格式最近更改为加密格式。使用此加密令牌(包括 XMPP),所有 API 都应该可以正常工作,但它需要对您的 XMPP 代码进行少量代码更改。
Sep 10 上有一篇博文展示了如何使用访问令牌进行 XMPP 身份验证。
将session_key
和sig
参数替换为access_token
参数,该参数应该是具有xmpp_login
权限的用户access_token - 另请注意,它需要通过SSL 传递(我认为这是可选的你只传递了会话密钥和信号)
如果您在传递加密访问令牌时无法使 XMPP 登录正常工作,请在 Facebook's bug tracker 中提交错误,但请确保您已根据上述注释和 chat docs 更改了参数。
【讨论】:
@lgy // 创建响应数组 $resp_array = array( 'method' => $challenge_array['method'], 'nonce' => $challenge_array['nonce'], 'access_token' => $access_token, 'api_key' => $options['app_id'], 'call_id' => 0, 'v' => '1.0', ); // 创建签名 $response = http_build_query($resp_array);【参考方案2】:Facebook 访问令牌的格式最近发生了变化。现在它被加密了。目前,如果您想获取访问令牌所有者的用户 ID,请按以下格式发出请求
https://graph.facebook.com/me?fields=id&access_token='accesstoken'
这会将访问令牌所有者的 Facebook 用户 ID 作为 Json 字符串返回。即使用户未登录,此请求也有效。
【讨论】:
以上是关于使用加密访问令牌格式登录 Facebook XMPP的主要内容,如果未能解决你的问题,请参考以下文章
从 Facebook Graph iOS SDK 解密或解码 Facebook 访问令牌
Facebook 访问令牌在第二次尝试使用 ParseFacebookUtils 登录 Facebook 时为空