예제 #1
0
 /**
  * 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;
 }