2012-12-17 29 views
1

我有一個擁有URL的Facebook選項卡應用程序。我想傳遞一些GET參數的URL。通常,這是我該怎麼辦簽名的請求獲取用戶數據:從頁面選項卡中檢索參數URL

if ($signed_request = parsePageSignedRequest()) { 
    $config = array(
     'appId' => $app_id, 
     'secret' => $app_secret, 
    ); 

    $facebook = new Facebook($config); 


    $ret_obj = $facebook->api('/me', 'GET', array()); 

    $theemail = $ret_obj['email']; 
    $thename = $ret_obj['name']; 
    $theusername = $ret_obj['username']; 
} 

我想知道如何從URL中的GET參數。該網址看起來像:

https://www.facebook.com/pages/Msomepagey/23023424231927?sk=app_518726691484563&user=someuser

我想要得到的值user

任何想法?

+0

它不工作使用'$ _GET ['user']'? –

回答

2

您需要使用app_data參數。 Facebook的會讀這個參數,它在請求中傳遞給您的應用程序:

此外,應用程序也將獲得被稱爲 app_data作爲signed_request一部分,如果一個app_data文件參數設置字符串參數 原始查詢您的標籤加載到的URL中的字符串。它可能是 看起來像這樣: 「https://www.facebook.com/YourPage?v=app_1234567890&app_data=any_string_here」。 如果您控制 生成鏈接,您可以使用它來自定義您呈現的內容。

在一個側面說明,您可以使用PHP-SDK也得到這樣的簽名的請求:

$signed_request = $facebook->getSignedRequest(); 

這裏更多:https://github.com/facebook/facebook-php-sdk/blob/master/src/base_facebook.php#L489

而且實際上你需要檢查,如果你在調用/me之前有一個有效的用戶會話,我建議你看看PHP-SDK example