2012-02-29 118 views
0

我logining并从一个域(本地主机)进行认证过程登录使用PHP SDK 3.1.1

$config = array(
    appId' => $APP_ID, 
    'secret' => $APP_SECRET 
); 
$facebook = new Facebook($config); 
$currentUserId = $facebook->getUser(); 

这工作得很好,我也得到一个访问令牌和一个用户ID。 之后。从浏览器我在远程PHP我使用相同的代码相同APP_ID和相同APP_SECRET

$config = array(
    'appId' => $APP_ID, 
    'secret' => $APP_SECRET 
); 
$facebook = new Facebook($config); 
$currentUserId = $facebook->getUser(); 

做出动作后到PHP文件的远程域 这不!工作和得到$ currentUserId = 0 ,这是我的问题

我可以使用(但不希望):

$facebook->setAccessToken($at); 

与acsess令牌从我得到的形成它的本地主机域名的工作,我得到的用户ID

在旧的sdk 2.0我见过这个函数setBaseDomain 有没有办法可以在3.1.1中使用它?

回答

2

这里是我做的 - 所以,当你发出请求到其他域通沿的access_token时,你的API调用做这样的事 -

$config = array(
    'appId' => $APP_ID, 
    'secret' => $APP_SECRET 
); 
$facebook = new Facebook($config); 

$args['access_token'] = $_POST['token'] // or $_GET[]; 
$me = $facebook->api('/me', 'get', $args); 
print_r($me); 

那么,它则说FB我知道请求来自不同的服务器,但我有一个有效的令牌,请接受这种牺牲来标记扎克伯格并让我做事。它会接受,你可以随心所欲地做:)

+0

谢谢。它确实工作,我不想通过acsess令牌。有没有办法做到这一点?我相信饼干负责购买我不知道如何操纵它们。如果它不可能,这也是一个很好的答案 – 2012-03-01 08:25:36

+0

Facebook需要令牌,如果您要从另一个域中登录,而不是用户所在的原始域,则需要访问令牌。 – 2012-03-01 14:43:02

+0

谢谢,这是有益的 – 2012-03-01 16:07:19