本文整理汇总了PHP中Facebook::getSignedRequest方法的典型用法代码示例。如果您正苦于以下问题:PHP Facebook::getSignedRequest方法的具体用法?PHP Facebook::getSignedRequest怎么用?PHP Facebook::getSignedRequest使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Facebook
的用法示例。
在下文中一共展示了Facebook::getSignedRequest方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: initContent
/**
* @see FrontController::initContent()
*/
public function initContent()
{
parent::initContent();
if ($this->context->customer->isLogged()) {
Tools::redirect('index.php?controller=my-account');
}
$fb_connect_appid = Configuration::get('FB_CONNECT_APPID');
$fb_connect_appkey = Configuration::get('FB_CONNECT_APPKEY');
$this->redirect_uri = $this->context->link->getModuleLink('fbconnect_psb', 'registration', array('done' => 1), TRUE, $this->context->language->id);
require_once _PS_ROOT_DIR_ . '/modules/fbconnect_psb/fb_sdk/facebook.php';
$facebook = new Facebook(array('appId' => $fb_connect_appid, 'secret' => $fb_connect_appkey));
// Get User ID
$user = $facebook->getUser();
// We may or may not have this data based on whether the user is logged in.
//
// If we have a $user id here, it means we know the user is logged into
// Facebook, but we don't know if the access token is valid. An access
// token is invalid if the user logged out of Facebook.
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$fb_user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
//die('Error: '.$e);
error_log($e);
$user = null;
}
} else {
// Get new Access tokens
Tools::redirect($facebook->getLoginUrl(array('scope' => 'email')));
}
// if user's FB account is linked than log the user in
if (isset($fb_user_profile['id'])) {
$sql = 'SELECT `id_customer`
FROM `' . _DB_PREFIX_ . 'customer_profile_connect`
WHERE `facebook_id` = \'' . (int) $fb_user_profile['id'] . '\'' . Shop::addSqlRestriction(Shop::SHARE_CUSTOMER);
if (Db::getInstance()->getValue($sql)) {
Tools::redirect($this->context->link->getModuleLink('fbconnect_psb', 'login', array(), TRUE, $this->context->language->id));
}
}
if (Tools::getValue('done')) {
$response = $facebook->getSignedRequest($_REQUEST['signed_request']);
$reg_metadata_fields = '[{"name":"name"},{"name":"first_name"},{"name":"last_name"},{"name":"email"},{"name":"password"},{"name":"birthday"},{"name":"gender"}]';
$reg_metadata_fields_clean = preg_replace('/\\s+/', '', $reg_metadata_fields);
$response_metadata_fields_clean = preg_replace('/\\s+/', '', $response['registration_metadata']['fields']);
if (strcmp($reg_metadata_fields_clean, $response_metadata_fields_clean) != 0) {
$this->errors[] = Tools::displayError('registration metadata fields not valid');
}
$response_email = trim($response['registration']['email']);
if (empty($response_email)) {
$this->errors[] = Tools::displayError('An email address required.');
} else {
if (!Validate::isEmail($response_email)) {
$this->errors[] = Tools::displayError('Invalid email address.');
} else {
if (Customer::customerExists($response_email)) {
// Need to clean up the code here most of it is from
// IDFBCon_v.0.2 (Chandra R. Atmaja <chandra.r.atmaja@gmail.com>)
// Someone has already registered with this e-mail address
// This will link the 1st existing email/account on site with Facebook
// and log the user in to the account. Is this safe?
$customer = new Customer();
$authentication = $customer->getByEmail($response['registration']['email']);
// This is done to see if a existing users try's to re-registrar
$sql = 'SELECT `facebook_id`
FROM `' . _DB_PREFIX_ . 'customer_profile_connect`
WHERE `id_customer` = \'' . (int) $customer->id . '\' ' . Shop::addSqlRestriction(Shop::SHARE_CUSTOMER);
$customer_fb_id = Db::getInstance()->getValue($sql);
if ($customer_fb_id) {
if ($customer_fb_id == (int) $response['user_id']) {
Tools::redirect($this->context->link->getModuleLink('fbconnect_psb', 'login', array(), false, $this->context->language->id));
} else {
$this->errors[] = Tools::displayError('An error occurred while linking your Facebook account.');
}
} else {
if (Db::getInstance()->insert('customer_profile_connect', array('id_customer' => (int) $customer->id, 'facebook_id' => (int) $response['user_id']))) {
$this->errors[] = Tools::displayError('an error occurred while linking your Facebook account.');
}
$customer->active = 1;
$customer->deleted = 0;
$this->context->cookie->id_customer = intval($customer->id);
$this->context->cookie->customer_lastname = $customer->lastname;
$this->context->cookie->customer_firstname = $customer->firstname;
$this->context->cookie->logged = 1;
$this->context->cookie->passwd = $customer->passwd;
$this->context->cookie->email = $customer->email;
if (Configuration::get('PS_CART_FOLLOWING') and (empty($this->context->cookie->id_cart) or Cart::getNbProducts($this->context->cookie->id_cart) == 0)) {
$this->context->cookie->id_cart = intval(Cart::lastNoneOrderedCart(intval($customer->id)));
}
Module::hookExec('authentication');
if ($back = Tools::getValue('back')) {
Tools::redirect($back);
}
Tools::redirect('index.php?controller=my-account');
}
}
}
//.........这里部分代码省略.........
示例2: fb
function fb()
{
$this->load->config('facebook');
include_once APPPATH . 'third_party/facebook.php';
$facebook = new Facebook(array('appId' => $this->config->item('facebook_app_id'), 'secret' => $this->config->item('facebook_api_secret'), 'cookie' => true));
$signed = $facebook->getSignedRequest();
if (isset($signed['registration'])) {
$username = $signed['registration']['name'];
$password = $signed['registration']['password'];
$email = $signed['registration']['email'];
$additional_data = array('fullname' => $username, 'fb_id' => $signed['user_id'], 'fb_oauth_token' => $signed['oauth_token'], 'avatar' => 'http://graph.facebook.com/' . $signed['user_id'] . '/picture');
$registration = $this->ion_auth->register($username, $password, $email, $additional_data);
if ($registration) {
//langsung auto login lah
if ($this->ion_auth->login($email, $password)) {
redirect('/member/');
return;
} else {
echo 'successfully registered but no login';
return;
}
} else {
$this->tpl['error'] = $this->ion_auth->errors();
}
}
$this->tpl['content'] = $this->load->view('registration_fb', $this->tpl, true);
$this->load->view('member/body', $this->tpl);
}
示例3: initialize
function initialize(&$controller, $settings = array())
{
global $signed_request;
$facebook = new Facebook(array('appId' => Configure::read('fbconfig.id'), 'secret' => Configure::read('fbconfig.secret'), 'cookie' => true));
$access_token = $facebook->getAccessToken();
if (isset($_REQUEST['signed_request'])) {
// faster
$signed_request = $_REQUEST['signed_request'];
} else {
// backup via API
$signed_request = $facebook->getSignedRequest();
}
$this->facebook = $facebook;
}
示例4: filter
/**
* The main method called by Laravel before routes are executed
*
* If
*
* @return mixed
*/
public function filter()
{
// If the URL was shared, i.e. has the shared=true querystring param, e.g. (mydomain.com/path/to/page?shared=true)
// then delete the session var done_facebook_redirect if it's set (it may have been set before if the user has clicked
// on a link to the app before) so that we can check whether we should redirect to facebook properly.
if ($this->wasUrlShared()) {
Session::forget('done_facebook_redirect');
}
$this->signedRequest = Facebook::getSignedRequest();
// Redirect to facebook, with the original uri encoded in app_data, if not on mobile, not the facebook bot and
// we haven't already redirected to facebook.
if ($this->shouldRedirectToFacebook()) {
return $this->doFacebookRedirect();
}
// If there is a valid uri in app_data and we haven't already done the redirect for this uri, we are in the
// iFrame, so do the app_data uri redirect to show the page in the app that the user originally wanted
$appDataUri = $this->newAppDataUri();
if ($appDataUri) {
return $this->doAppDataUriRedirect($appDataUri);
}
$this->sendP3PHeaders();
}
示例5: Facebook
<?php
$facebook = new Facebook();
$user = $facebook->getUser();
//$this->load->model('users');
if ($user) {
//$logoutUrl2 = $this->tank_auth->logout();
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
$signed_request = $facebook->getSignedRequest();
// Return you the Page like status
$like_status = $signed_request["page"]["liked"];
if ($like_status) {
$this->session->set_flashdata('like', 'yes');
}
?>
<html>
<head>
<link href="http://www.webdigi.co.uk/css/fb.css" rel="stylesheet" type="text/css" />
<style>
html,body{padding:0px;margin:0px}
.input-xlarge{width:150px;border-radius: 5px;border: 1px solid white;}
.control{margin-bottom:12px;}
.data_label{float:left;width:65px;color:white;font-family:arial;font-weight:bold;}
示例6: isInFacebookButNotInPage
/**
* Returns, whether the user is inside of facebook, but not on the page, but in the app directly
*
* @return bool
*/
public function isInFacebookButNotInPage()
{
$signedRequest = $this->facebook->getSignedRequest();
return !empty($signedRequest) && !isset($signedRequest['page']);
}
示例7: setSignedRequest
/**
* Set Signed Request
*/
protected function setSignedRequest()
{
$this->signedRequest = $this->sdk->getSignedRequest();
}
示例8: CheckIfSigned
function CheckIfSigned()
{
require 'server/facebook.php';
$facebook = new Facebook(array('appId' => $this->config->item('fb_appkey'), 'secret' => $this->config->item('fb_appsecret')));
$signed_request_data = $facebook->getSignedRequest();
//die(print_r( $signedrequest ));
//$data['signed_data'] = $signed_request_data;
$fbid = '';
if (@array_key_exists('user_id', $signed_request_data)) {
$fbid = $signed_request_data['user_id'];
$token = $signed_request_data['oauth_token'];
setcookie("hardcover_fbid", $fbid, time() + 86400, '/');
setcookie("hardcover_token", $token, time() + 86400, '/');
//expires in 2hrs
return $signed_request_data;
} else {
//let clear the cookie everytime the user visit the dashboard
setcookie("hardcover_fbid", "", time() - 3600);
setcookie("hardcover_token", "", time() - 3600);
return false;
}
}
示例9: validatePlayer
function validatePlayer()
{
// Figure out who's playing
global $passToClient;
// A simple auth system built to be replaced:
if (!$GLOBALS['on']['auth']) {
if (isset($_COOKIE['uid'])) {
$uid = explode('.', $_COOKIE['uid']);
if (count($uid) == 2) {
$hashedID = md5($uid[0] . $GLOBALS['uidsalt']);
if ($hashedID == $uid[1]) {
// good - extend and return
setcookie('uid', $_COOKIE['uid'], time() + 2592000, '/');
return $uid[0];
}
}
}
// if we're here, we need to set a new UID
$uid[0] = mt_rand();
$uid[1] = md5($uid[0] . $GLOBALS['uidsalt']);
$uidCookie = implode('.', $uid);
setcookie('uid', $uidCookie, time() + 2592000, '/');
return $uid[0];
}
//TAG:AUTH
// If $on['auth'], instead use Facebook's server auth flow
global $facebook;
if ($GLOBALS['on']['auth']) {
require_once './fb/facebook.php';
// Initialize the Facebook PHP SDK
$facebook = new Facebook(array('appId' => $GLOBALS['appID'], 'secret' => $GLOBALS['appSecret']));
$sr = $facebook->getSignedRequest();
// Turn these on to get a dribble of the browser state/security interaction:
// error_log('function [' . getparam('f') . ', sr: ]' . var_export($sr, true));
// error_log(var_export($_REQUEST, true));
// error_log(var_export($_COOKIE, true));
if (isset($sr['user_id'])) {
$GLOBALS['fbid'] = $facebook->getUser();
$GLOBALS['userToken'] = $facebook->getAccessToken();
// error_log("using browser state for auth, user $GLOBALS[fbid], " .
// "token $GLOBALS[userToken]");
// work around Safari 3p cookie weirdness
$rawRequest = getParam('signed_request');
if ($rawRequest) {
$passToClient['sr'] = "signed_request={$rawRequest}";
}
} else {
// Send the user to the auth dialog
authRedirect();
}
try {
$fbProfile = $facebook->api('/me?fields=first_name,gender,id,currency,locale', 'GET');
$passToClient['profile'] = $fbProfile;
//TAG:REQUESTS
if ($GLOBALS['on']['requests']) {
$passToClient['appRequests'] = getRequests();
}
} catch (FacebookApiException $e) {
// TODO deal with it
throw $e;
}
return $GLOBALS['fbid'];
}
}
示例10: fb_check
function fb_check()
{
// check fb start
/*
signed_request:
Array
(
[algorithm] => HMAC-SHA256
[expires] => 1344492000
[issued_at] => 1344485848
[oauth_token] => AAAFBxR81IbUBACMTXSZBtudFAmNoffCxNi3fVpPIZBLolSSxvX3dGObQSVObnYx8l1fjWglPfr6ZAQfHNpaVslNioGJ3W4bObMZBww7LZCdXCGkZBS72wr
[user] => Array
(
[country] => id
[locale] => en_US
[age] => Array
(
[min] => 21
)
)
[user_id] => 100004158610028
)
jika user belum authorize app ini, maka variable $user_id dan $oauth_token tidak ada
*/
$config = array();
$config['appId'] = '353789864649141';
$config['secret'] = '9e066419bed7d9ff07f4475f26318aa8';
$config['fileUpload'] = false;
// optional
$facebook = new Facebook($config);
$signed_request = $facebook->getSignedRequest();
// die("<pre>" . print_r($signed_request, true) . "</pre>");
write_log(array('log_text' => time() . ": signed_request: " . print_r($signed_request, true)));
if (isset($signed_request)) {
// print("<pre>" . print_r($signed_request, true) . "</pre>");exit;
// cek jika $signed_request ini utk registrasi
if (isset($signed_request['registration'])) {
// print("<pre>" . print_r($signed_request['registration'], true) . "</pre>");exit;
// masukkan ke db
$me = $facebook->api('/me');
require_once 'modules/001_user_management/guest.php';
// fullname, username, password, email, avatarname, handphone, twitter, sex, birthday, location
$reg_data = array('fullname' => $signed_request['registration']['name'], 'username' => $signed_request['registration']['email'], 'password' => $me['id'], 'email' => $signed_request['registration']['email'], 'avatarname' => $signed_request['registration']['name'] . time(), 'handphone' => $signed_request['registration']['handphone'], 'twitter' => $signed_request['registration']['twitter'], 'sex' => $signed_request['registration']['gender'], 'birthday' => $signed_request['registration']['birthday'], 'location' => $signed_request['registration']['location']['name'], 'via_fb' => 1, 'fb_id' => $me['id'], '$automate_login' => 1);
$registered = user_guest_add_user($reg_data);
// die("Registered: $registered");
if ($registered == 'OK') {
user_user_loginfb($me[id]);
unset($_SESSION['signed_request']);
unset($signed_request);
header("Location: " . $basepath);
exit;
} else {
if ($registered == 'ERROR - Email already used. Use another email.') {
user_user_loginfb($me[id]);
unset($_SESSION['signed_request']);
unset($signed_request);
//$html = "<script>
// alert('".$registered."');
// window.top.location = '".$basepath."';
//</script>";
//print($html); exit;
header("Location: " . $basepath);
exit;
}
}
}
write_log(array('log_text' => time() . ": 146 - signed_request: " . print_r($signed_request, true)));
if (isset($signed_request['oauth_token'])) {
$_SESSION['signed_request'] = $signed_request;
}
$app_authorized = isset($signed_request['user_id']) && isset($signed_request['oauth_token']);
write_log(array('log_text' => time() . ": app_authorized: " . print_r($app_authorized, true)));
if (!isset($signed_request['user_id']) && !isset($signed_request['oauth_token']) && !isset($_SESSION['fb_id'])) {
// Redirect the user to the OAuth Dialog
// die("YOu are here...");
$html = "<script>\r\n\t\t\t\tvar oauth_url = 'https://www.facebook.com/dialog/oauth/';\r\n\t\t\t\toauth_url += '?client_id=' + " . $config['appId'] . ";\r\n\t\t\t\toauth_url += '&redirect_uri=' + encodeURIComponent('https://apps.facebook.com/popbloop/');\r\n\t\t\t\toauth_url += '&scope=email,user_birthday,status_update,publish_stream,read_friendlists';\t// user_photos,user_videos,\r\n\t\t\t\t// document.write(oauth_url);\r\n\t\t\t\twindow.top.location = oauth_url;\r\n\t\t\t\t\r\n\t\t\t</script>";
print $html;
exit;
}
/*unset($_SESSION['just_logout']);*/
}
// operasi2 yg dilakukan bila user akses via FB
// BELUM SELESAI
if (isset($_SESSION['signed_request'])) {
write_log(array('log_text' => time() . ": akses via FB: " . print_r($_SESSION['signed_request'], true)));
$session = $facebook->getUser();
$me = null;
if ($session) {
try {
$me = $facebook->api('/me');
} catch (Exception $e) {
}
}
// die("<pre>" . print_r($me, true) . "</pre>");
// cek apakah user ini sudah terdaftar sbg player popbloop
// jika belum, redirect ke facebook registration plugin
}
// operasi2 yg dilakukan bila user akses via WEB
// belum selesai
if (!isset($_SESSION['signed_request'])) {
//.........这里部分代码省略.........
示例11: base64_url_decode
// check sig
$expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
if ($sig !== $expected_sig) {
error_log('Bad Signed JSON signature!');
return null;
}
return $data;
}
function base64_url_decode($input)
{
return base64_decode(strtr($input, '-_', '+/'));
}
$secret = 'e6ea32cfe8d954562bf42353d03c5de6';
$signed_request = $_REQUEST['signed_request'];
$response = parse_signed_request($signed_request, $secret);
$req = $facebook->getSignedRequest();
/*
print_r($response);
*/
?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://ogp.me/ns/fb#">
<head>
<style>
*{
border:none;
float:left;
margin: none;
padding: none;
}