/** * Makes a signed_request blob using the given data. * * @param array $data The data array. * @param string $appSecret * @throws InvalidArgumentException * @return string The signed request. */ public static function encode($data, $appSecret) { if (!is_array($data)) { throw new InvalidArgumentException(__METHOD__ . ' expects an array, but given ' . print_r($data, TRUE)); } $data['algorithm'] = Configuration::SIGNED_REQUEST_ALGORITHM; $data['issued_at'] = time(); $b64 = Helpers::base64UrlEncode(Json::encode($data)); $raw_sig = hash_hmac('sha256', $b64, $appSecret, $raw = TRUE); $sig = Helpers::base64UrlEncode($raw_sig); return $sig . '.' . $b64; }