2012-02-29 114 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