2012-02-13 62 views
0

我试图让登录的当前用户的Facebook的ID,并使用我的应用程序,以便它可以与其他信息一起被写入到数据库中。没有得到Facebook的用户ID

我已经测试了无数次为我自己,它会得到我的ID,并将其写入到数据库,但如果我问别人使用它......它不会得到用户的ID我应用...

我缺少这方面的任何扩展的权限?这是我迄今为止获得的用户ID。

谢谢。

<?php include ('includes/php/facebook.php'); ?> 

<?php 

$facebook = new Facebook(array(
    'appId' => 'XXXXXXXXXXXXXXXXX', 
    'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX', 
)); 

?> 

<?php 

    $user = $facebook->getUser(); 
    $userId = $user; 
    //some code here... 
?> 
+0

你在哪里登录用户,并让他们给予他们的帐户信息您的应用程序的访问? – chesles 2012-02-13 22:00:43

+0

不通。我只是得到了用户的ID ...所以看起来认证是问题...它会解释它 – 2012-02-13 22:03:30

+0

是的,这是你的问题。查看@ mazzucci的答案或SDK文档以获取示例。 – chesles 2012-02-13 22:06:54

回答

0

http://developers.facebook.com/docs/authentication/

默认情况下,系统会要求用户授权该应用访问基本 信息可公开或在Facebook上默认。如果 您的应用程序需要的不仅仅是这些基本信息更多的功能,必须从用户 请求特定的权限。这是通过 添加范围参数的对话框的OAuth请求随后逗号 所需的权限的分隔的列表来实现。下面的例子 演示如何要求获得用户的电子邮件地址和他们的新闻 饲料:

https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=email,read_stream 
1

如果$用户ID为0或空的,这意味着用户没有通过验证。

// Get User ID 
$user = $facebook->getUser(); 

// We may or may not have this data based on whether the user is logged in. 
// 
// If we have a $user id here, it means we know the user is logged into 
// Facebook, but we don't know if the access token is valid. An access 
// token is invalid if the user logged out of Facebook. 

if ($user) { 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me/accounts'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    $user = null; 
    } 
} 

// Login or logout url will be needed depending on current user state. 
if ($user) { 
    $logoutUrl = $facebook->getLogoutUrl(array("domain" => 'www.myurl.com')); 
} else { 
    $loginUrl = $facebook->getLoginUrl(array("scope" => 'publish_stream,offline_access,manage_pages')); 
} 

您可以从http://developers.facebook.com/docs/reference/php/

它包含几个例子下载SDK。

相关问题