2012-01-15 110 views
0

我一直坚持这个问题一段时间了,今天我只是放弃了,我意识到我真的非常需要帮助,我找不到任何解决类似问题的帖子。所以通过推荐Facebook的帆布认证

我正在尝试创建一个Facebook应用程序(自2012年1月1日以来 - 因为有任何标准更改,您可以告诉我这一点),并且我已正确设置了我的画布网址。

所以现在,当你访问我在Facebook上的应用程序,作为apps.facebook.com/canvas-page,你可以看到我的应用程序。不过,我遇到了身份验证问题。

我的应用需要基本信息和试图访问它的用户的电子邮件地址。

因此,就目前为止,我已经设置它,以便新用户可以看到身份验证对话框,然后访问我的应用程序。在访问我的应用程序时,我希望我的应用程序能够访问上述信息。但是我的画布页上我做了在PHP代码下面,没有别的,我希望能够看到的是由Facebook的转诊从验证对话框传递给我的应用程序什么样的信息:

<?php 
    print_r($_GET); 
    echo "\n"; 
    print_r($_POST); 
    ?> 

然而可悲的是,这给了我空阵列,没有别的。

我真正需要的是我的Facebook应用程序是access_token和用户ID,虽然我很确定我可以通过访问graph.facebook.com/me?access_token= [访问令牌提供的访问当前用户的ID某处]

因此,这是我的第一个问题,第二个问题是,当我注销脸书,我访问apps.facebook.com/canvas-page我不会被要求登录,为什么这样?我必须重定向到Facebook使用JavaScript登录,然后参考我的应用程序?

目前,这些是我的设置(要求更多的信息,这样我可以给他们你) 设置>验证对话框>验证的请示>用户&朋友的权限=电子邮件 设置>验证对话框>验证的请示>的身份验证令牌参数=?=代码

设置>高级>迁移=所有启用

回答

0

FB使用Signed Request将数据发送到您的应用程序(而非$ _ POST,而不是_GET $)。在Sample Canvas App中有一个叫signed_request Parameter的章节。

使用php-sdk你可以得到这样的:

$signed_request = $facebook->getSignedRequest(); 

var_dump($signed_request); 

array (
    'algorithm' => 'HMAC-SHA256', 
    'expires' => 1326632400, 
    'issued_at' => 1326628636, 
    'oauth_token' => '***', 
    'page' => 
    array (
    'id' => '***', 
    'liked' => false, 
    'admin' => true, 
), 
    'user' => 
    array (
    'country' => 'cl', 
    'locale' => 'en_US', 
    'age' => 
    array (
     'min' => 21, 
    ), 
), 
    'user_id' => '***', 
) 

除此之外,您还可以通过一个名为app_data参数通过网址:

"http://www.facebook.com/YourPage?v=app_1234567890&app_data=any_string_here" 

你会得到它的$signed_request了。

... 
array (
    'algorithm' => 'HMAC-SHA256', 
    'app_data' => 'any_string_here', 
    'expires' => 1326636000, 
    'issued_at' => 1326629411, 
... 

请评论!谢谢.-

+0

我做了'$ fb = new Facebook($ config); var_dump($ fb-> getSignedRequest)'和我得到的结果是NULL ..我一直在试图找到一个工作,所以我有点迟了回复。我认为问题是我使用yii框架,并将页面重定向到登录的其他地方 - 如果用户未登录,所以我认为这是问题 – mur 2012-01-16 11:00:30

+0

我解决了问题,问题是重定向,多数民众赞成为什么我一直得到NULL,'print_r($ _ REQUEST)'也没有返回任何内容...感谢! – mur 2012-01-16 11:05:45

+0

@mursalat太棒了。如果这个答案很有用,请点击“检查图标”接受。 Sayonara ... – 2012-01-16 14:06:00