AutorÃa | Ultima modificación | Ver Log |
<?php
namespace LeadersLinked\Library;
class Facebook
{
/**
*
* @var array
*/
private $config;
/**
*
* @param array $config
*/
public function __construct($config)
{
$this->config = $config;
}
/**
*
* @param string $input
* @return string
*/
public static function base64_url_decode($input) {
return base64_decode(strtr($input, '-_', '+/'));
}
/**
*
* @param string $signed_request
* @return NULL|array
*/
public function parse_signed_request($signed_request)
{
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$secret = $this->config['leaderslinked.facebook.app_password'];
// decode the data
$sig = self::base64_url_decode($encoded_sig);
$data = json_decode(self::base64_url_decode($payload), true);
// confirm the signature
$raw = true;
$expected_sig = hash_hmac('sha256', $payload, $secret, $raw);
if ($sig !== $expected_sig) {
error_log('Facebook Bad Signed JSON signature!');
return null;
}
return $data;
}
}