Tôi đang nâng cấp các ứng dụng FB hiện có của mình và hoàn toàn tìm kiếm ứng dụng canvas iframe PHP đơn giản để ủy quyền và xác thực (cũng như sử dụng SSL) . Không bao giờ xem qua rất nhiều ví dụ ...Ứng dụng canvas Facebook "redirect_uri" thoát ra khỏi khung nội tuyến sau khi ủy quyền và xác thực
Đây là nơi tôi bị kẹt: Sau khi người dùng ủy quyền ứng dụng và ứng dụng xác thực người dùng (tôi có thể tạo yêu cầu biểu đồ bằng mã thông báo OK), redirect_uri xảy ra, và toàn bộ trang làm mới, để lại Facebook và sau đó chỉ cho tôi thấy nội dung của trang "URL Canvas" của tôi (với tên miền của máy chủ của tôi), chứ không phải iframe trên Facebook.
Tôi hiện có này như một thô quá trình hai bước ...
Đây là những gì mã của tôi trông như thế nào trên trang đầu tiên (index.php):
<?php
require('src/facebook.php');
$app_id = '123456789';
$app_secret = '1234secrets1234';
$canvas_page = "https://apps.facebook.com/123456789/";
$canvas_url = "https://myserver.com/apptest/";
$code = $_REQUEST['code'];
if(!$code){
$display= 'page';
$scope= 'manage_pages, offline_access, read_insights, publish_stream, user_about_me, user_likes, email';
$redirect_url = 'https://myserver.com/apptest/step2.php';
$oauth_url = 'https://www.facebook.com/dialog/oauth?canvas=1&client_id='.$app_id.'&display='.$display.'&redirect_uri='.urlencode($redirect_url).'&scope='.$scope;
$config = array('appId' => $app_id,'secret' => $app_secret,'cookie' => true,'domain' => true);
$facebook_client = new Facebook($config);
echo "<script type=\"text/javascript\">top.location.href = \"".$oauth_url."\";</script>";
}
?>
và trang thứ hai (bước 2 .php):
<?php
require('src/facebook.php');
$app_id = '123456789';
$app_secret = '1234secrets1234';
$canvas_page = "https://apps.facebook.com/123456789/";
$canvas_url = "https://myserver.com/apptest/";
if($_REQUEST['code']){
$code=$_REQUEST['code'];
$redirect_url = 'https://myserver.com/apptest/step2.php';
$link="https://graph.facebook.com/oauth/access_token?canvas=1&client_id=".$app_id."&redirect_uri=".urlencode($redirect_url)."&client_secret=".$app_secret."&code=".$code;
$string = file_get_contents($link);
$auth_token=substr($string, 13, 150);
$graph_url = "https://graph.facebook.com/me?access_token=".$auth_token;
$user = json_decode(file_get_contents($graph_url));
echo("Hello " . $user->name);
}
Một lần nữa, khi người dùng đã ủy quyền ứng dụng và ứng dụng đã xác thực người dùng, gọi biểu đồ hoạt động.
Bất kỳ ý tưởng nào?
bản sao có thể có của [Tại sao tôi nhận được chỉ mục chưa được xác định cho signed_request trong ứng dụng facebook của mình?] (Http://facebook.stackoverflow.com/questions/7534241/why-do-i-get-an-undefined-index -for-signed-request-in-my-facebook-app) – ifaour