public function fetchRequestToken(array $params = [])
{
$this->setAccessToken(null);
$defaultParams = ['oauth_consumer_key' => $this->consumerKey, 'oauth_callback' => $this->getReturnUrl()];
if (!empty($this->scope)) {
$defaultParams['scope'] = $this->scope;
}
$request = $this->createRequest()->setMethod($this->requestTokenMethod)->setUrl($this->requestTokenUrl)->setData(array_merge($defaultParams, $params));
$this->signRequest($request);
$request->setContent('');
// enforce empty body, avoiding duplicate param server error
$response = $this->sendRequest($request);
$token = $this->createToken(['params' => $response]);
$this->setState('requestToken', $token);
return $token;
}