0

我感谢所有通过提供可用答案来提供帮助的人,所以问题很简单,但我就是想不通,我已经理解了在创建应用程序时通过 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 末尾的范围参数来指定它,你知道,访问朋友列表,发布能力等等。所以我认为这部分会进入我的 index.php 文件,当我得到用户信息时,我会将其存储在数据库内的相应表中。然后,我将使用所有数据和应用程序运行所需的数据启动会话,当用户注销时,我会销毁会话。我不明白的一件事是,当用户再次登录 Facebook 时会发生什么?他/她已经授权了我的应用程序,我想它会在他们的应用程序列表中,我不明白,当他们点击列表中的 url 时,我会再次获取他们的数据并将它们登录到我的 up . 授权就像注册一样,登录呢?我需要这个来开始一个会话,从我的数据库等加载他们保存的数据。我知道这是一个非常基本的问题,但我是这个 Facebook 应用程序的新手,而不是专业程序员。我已阅读文档,但在用户授权应用程序后仍然无法登录,这将如何工作?提前感谢您的帮助,一个例子会很好。

4

1 回答 1

0

Facebook 登录实际上是合二为一的。它检查应用程序是否被授权,如果是,它会登录用户并返回他们的 FB 用户信息,而不是让他们重新授权应用程序。您可以保存相关数据,然后根据 FB API 作为用户返回的内容检查您的数据库,以将它们实际登录到您的站点。

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

于 2012-10-11T15:26:03.630 回答