在facebook上加载iframe的应用程序

时间:2011-10-20 17:45:11

标签: iframe facebook-graph-api

我在facebook上的iframe中加载了一个应用。 但是在允许并从facebook授权重定向到我的facekooksite后,我无法从我的代码中的querrystring中获取“代码”(因为在fa​​cebook上加载了iframe) 我怎样才能获取“代码”参数?

1 个答案:

答案 0 :(得分:1)

我猜您正在关注服务器端authentication flow。但是,由于您在Facebook上使用应用程序,此流程将发生变化,因为Facebook正在向您的画布iframe发送signed_request

<?php 

     $app_id = "YOUR_APP_ID";

     $canvas_page = "YOUR_CANVAS_PAGE_URL";

     $auth_url = "https://www.facebook.com/dialog/oauth?client_id=" 
            . $app_id . "&redirect_uri=" . urlencode($canvas_page);

     $signed_request = $_REQUEST["signed_request"];

     list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

     $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);

     if (empty($data["user_id"])) {
            echo("<script> top.location.href='" . $auth_url . "'</script>");
     } else {
            echo ("Welcome User: " . $data["user_id"]);
     } 
 ?>

显然,当您在Facebook上时,该用户或者已经连接到您的应用程序,所以如果他/她没有连接,那么您将它们重定向到身份验证URL。