final protected function auth($string = '') {
    $canonical = strtoupper($this->method) . $this->path() . strval($this->datetime) . $string;
    $signature = $this->hhmac($canonical, $this->api_key_secret);
    return sprintf('HHMAC; key=%s; signature=%s; date=%s',
      $this->api_key_id, $signature,
      $this->datetime
    );
  }