Facebook解码的signed_request包含文档中未提及的额外数据

时间:2011-10-13 08:11:33

标签: facebook authentication

我有一个Facebook signed_request,通过订阅auth.login事件并在用户使用facebook login button

登录后收到

解码signed_request后,我有以下信息:

{'issued_at': 1318492701, 
'code': 'AQCXI5aiyYtYLFNtkYhtKwDhO02lP[truncated]', 
'user_id': '100000xxxxxxxxx', 
'algorithm': 'HMAC-SHA256'}

我在signed_request documentation找不到。这是什么code及其用途是什么?

我认为它可能用于获取this thread中所述的授权代码,但随着signed_request我还会在登录事件的响应中收到用户的访问令牌。

4 个答案:

答案 0 :(得分:2)

我不知道他们为什么不提及在签名请求的文档页面上使用代码。代码可以交换访问令牌,这是发出任何后续Facebook API请求的关键。

相关文档在此处:https://developers.facebook.com/docs/authentication/

  

掌握此代码后,您可以继续执行下一步应用程序身份验证,以获取进行API调用所需的访问令牌。

     

要对您的应用进行身份验证,您必须将授权码和您的应用密码传递给Graph API令牌端点 - 以及上面使用的完全相同的redirect_uri - 位于https://graph.facebook.com/oauth/access_token。应用程序密钥可从开发人员应用程序获得,不应与任何人共享或嵌入您将分发的任何代码中(您应该在这些方案中使用客户端流程)。

答案 1 :(得分:1)

该代码对于获取有关安装应用的用户的信息非常有用

但无论如何告诉我你需要哪些信息然后我可以给你样例代码


好吧,如果你再次检查你发布的代码,你就会发现你有用户名 所以你不需要为这个

使用访问令牌

但无论如何要获得基本信息&任何其他信息或发布&删除你有两种方式:

第一:直接做(不需要sdk,但更难) 第二:通过sdk(很容易) 我建议你使用sdk&如果您的服务器端编程语言是PHP,那么您可以这样做以获取基本信息

    <?php
    include_once ('src/facebook.php');/// include sdk
    ////// config The sdk
        @ $facebook = new Facebook(array(
        'appId'  => '*************',
        'secret' => '*****************',
         )); 
$user=$facebook->api('me','GET');
echo '<pre>';
print_r($user);
echo '</pre>';
?>

下载 下载php sdk

https://developers.facebook.com/docs/reference/php/

答案 2 :(得分:1)

这是JavaScript SDK中的signed_request,对吗?代码由SDK使用,但不适用于服务器端身份验证。实际上,我们将更新文档以反映signed_request行为。

答案 3 :(得分:0)

您必须访问此facebook offical doc并阅读“signed_request参数”及其下面的文字,了解解码后获得的代码signed_request