Generating Signatures - GoREACT/widgets-js-api GitHub Wiki

Generating a signature using HMAC-SHA1:

hash_hmac('sha1', sorted_values, secret)
Generating a signature in PHP
$app_secret = 'password';
$request = array(
	'api_key'=>'12345abc', 
	'user_id' => '5432b03462ccc7ea7bcc2c41', 
	'first_name' => 'Joe', 
	'last_name'=>'Xample', 
	'email'=>'[email protected]', 
	'context_id'=>1,
	'context_name'=>'Group Name',
	'context_role'=>'presenter',
	'expires'=>time() + 180 // expires after 180 seconds
);

// sort payload by key
ksort($request);

// assemble query parts
$query_parts = array();
foreach ($request as $key => $value){
    $query_parts[] = $key . '=' . rawurlencode($value);
}

$enc_request = rawurlencode( implode('&', $query_parts));
$signature = base64_encode(hash_hmac('sha1', $enc_request, $app_secret, true));