3

我正在facebook中创建一个应用程序,当用户输入我的应用程序时,将进行身份验证,之后我将获得用户的访问令牌和ID,现在我想要同一用户的详细信息,我必须将其存储在数据库中.. ..怎么做这个我试过的代码是

 <?php 

     $app_id = "xxxxxxxxxxx";

     $canvas_page = "xxxxxxxxxxxxx";

     $auth_url = "https://www.facebook.com/dialog/oauth?client_id=" 
            . $app_id . "&redirect_uri=" . urlencode($canvas_page)."&scope=email,user_birthday";

     $signed_request = $_REQUEST["signed_request"];
     //print_r($signed_request);

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

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

      if(!isset ($_GET['code'])) {
                        if (empty($data["user_id"])) {
                          echo("<script> top.location.href='" . $auth_url . "'</script>");
                   } else {
                        $accessToken = $data["oauth_token"];

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

 ?>

现在我想要字符串或数组格式的用户名和其他详细信息......请帮助我......

4

2 回答 2

15

使用这个 Graph api:

https://graph.facebook.com/me?access_token=XXXXXXXXXXXXXXX

您可以使用 fields 查询参数选择要返回的字段:

https://graph.facebook.com/me?fields=id,name

于 2012-12-06T06:33:25.443 回答
0

您可以使用自动处理这种情况并设置访问令牌的Facebook PHP SDK ,或者您可以使用手动指定访问令牌

setAccessToken($access_token) 方法

并将您的用户的访问令牌传递给它,并使用 api() 方法进行 Graph API 调用以获取有关用户的数据。如果您想取消 SDK,则需要将访问令牌作为参数添加到 Graph API 端点。

于 2012-12-06T10:06:35.700 回答