예제 #1
0
<?php

require_once 'fbApi/facebook.php';
require_once 'constants.php';
require_once 'publicationGen.php';
//fb login
$facebook = new Facebook($appapikey, $appsecret);
$user_id = $facebook->require_login();
//handle session work
$session_key_hash = md5($facebook->api_client->session_key);
session_id($session_key_hash);
session_start();
session_unset();
//initialize basic user info using preloaded FQL
$pfql = $facebook->get_valid_fb_params($_POST, null, 'fb_sig');
$userinfo = null;
if (array_key_exists("userinfo", $pfql)) {
    $userinfo = json_decode($pfql["userinfo"]);
}
if ($userinfo != null) {
    $user_name = $userinfo[0][0];
    $gender = $userinfo[0][1];
} else {
    $user_name = "Somebody";
    $gender = "he/she";
}
// create the publication fields to be used in post_to_stream call (fbjs)
$pubGen = new PublicationGen($gender);
?>

<fb:fbml>
<?php

include_once '../lib/client/facebook.php';
include_once '../lib/AppConfig.class.php';
// Create a new Facebook client object
$facebook = new Facebook(AppConfig::$api_key, AppConfig::$secret);
// Prevent this page from being viewed outside the context of http://app.facebook.com/appname/
$facebook->require_frame();
// Prevent this page from being viewed without a valid logged in user
// -- NOTE: This does not mean that the logged in user has added the application
$user = $facebook->require_login();
// Require the viewing user to have added the application.
$facebook->require_add();
// Use the get_valid_fb_params to return an array of the fb_sig_* parameters
$app_params = $facebook->get_valid_fb_params($_POST, 48 * 3600, 'fb_sig');
// Use the generate_sig method to create a signature from the application parameters and the secret
$request_sig = $facebook->generate_sig($app_params, AppConfig::$secret);
$sig_match = $facebook->verify_signature($app_params, $request_sig);
?>
<div style="padding: 10px;">
  <h2>Hello <fb:name firstnameonly="true" uid="<?php 
echo $user;
?>
" useyou="false"/>!</h2>
<?php 
if ($sig_match) {
    ?>
  <p>The signature "<?php 
    echo $request_sig;
    ?>
" does match the request parameters.</p>