从页面选项卡URL中检索参数

时间:2012-12-17 18:02:44

标签: php facebook facebook-php-sdk facebook-apps

我有一个带有网址的facebook标签应用程序。我想传递一些GET参数的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'];
}

我想知道如何从网址获取GET参数。网址如下:

  

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

我想获得user的价值。

有什么想法吗?

1 个答案:

答案 0 :(得分: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