用户如何在授权后登录Facebook应用程序

时间:2012-10-11 15:19:15

标签: php

我感谢所有那些通过提供有用答案提供帮助的人,所以问题很简单,但我无法理解,我已经理解了创建应用程序时通过Oauth对话框获取用户授权的部分这将是在画布中的Facebook chrome中。基本上你只需访问已签名的请求参数并提示用户授权应用程序满足它可能需要的任何要求,你知道,例如涉及朋友列表的用户信息,用户ID,名称,在墙上发布照片的能力等等,它是这样的:

<?php 

 $app_id = "YOUR_APP_ID";

 $canvas_page = "YOUR_CANVAS_PAGE_URL";

 $auth_url = "http://www.facebook.com/dialog/oauth?client_id=" 
        . $app_id . "&redirect_uri=" . urlencode($canvas_page);

 $signed_request = $_REQUEST["signed_request"];

 list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

 $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);

 if (empty($data["user_id"])) {
        echo("<script> top.location.href='" . $auth_url . "'</script>");
 } else {
        echo ("Welcome User: " . $data["user_id"]);
 } 
 ?>

如果我需要更多数据,我会使用画布页面url末尾的scope参数指定它,你知道,访问朋友列表,发布的能力等等。所以我认为这部分将进入我的index.php文件,当我获得用户信息时,我将它存储在数据库内的相应表中。然后,我将使用所有数据启动会话,并且需要让应用程序正常工作,当用户注销时,我会销毁会话。我不知道的一件事是,当用户再次登录Facebook时会发生什么?他/她本来已经授权我的应用程序,我想它会在他们的应用程序列表中,我不知道如何,当他们点击列表中的URL时,我会再次获取他们的数据并将其登录到我的。授权就像注册,登录怎么样?我需要这个来开始一个会话,从我的数据库等加载他们保存的数据。我知道这是一个非常基本的问题,但我是这个Facebook应用程序的新手,而不是专业的程序员。我已经阅读了文档,但在用户授权应用程序后仍然没有登录,这将如何工作?在此先感谢您的帮助,一个很好的例子。

1 个答案:

答案 0 :(得分:0)

Facebook登录真的是一体的。它检查应用程序是否已获得授权,是否将用户登录并返回其FB用户信息,而不是让他们重新授权应用程序。您可以保存相关数据,然后根据FB API返回的内容检查数据库,以便用户将其实际登录到您的站点。

当我使用它时,我将他们的FB用户ID保存到我的数据库,然后当登录过程返回Facebook用户时,我将该用户ID与我的数据库进行比较并加载相关用户。

相关问题