yii\authclient\OAuth1::fetchAccessToken PHP Method

fetchAccessToken() public method

Fetches OAuth access token.
public fetchAccessToken ( string $oauthToken = null, OAuthToken $requestToken = null, string $oauthVerifier = null, array $params = [] ) : OAuthToken
$oauthToken string OAuth token returned with redirection back to client.
$requestToken OAuthToken OAuth request token.
$oauthVerifier string OAuth verifier.
$params array additional request params.
return OAuthToken OAuth access token.
    public function fetchAccessToken($oauthToken = null, OAuthToken $requestToken = null, $oauthVerifier = null, array $params = [])
    {
        if ($oauthToken === null) {
            if (isset($_REQUEST['oauth_token'])) {
                $oauthToken = $_REQUEST['oauth_token'];
            }
        }
        if (!is_object($requestToken)) {
            $requestToken = $this->getState('requestToken');
            if (!is_object($requestToken)) {
                throw new InvalidParamException('Request token is required to fetch access token!');
            }
        }
        if (strcmp($requestToken->getToken(), $oauthToken) !== 0) {
            throw new HttpException(400, 'Invalid auth state parameter.');
        }
        $this->removeState('requestToken');
        $defaultParams = ['oauth_consumer_key' => $this->consumerKey, 'oauth_token' => $requestToken->getToken()];
        if ($oauthVerifier === null) {
            if (isset($_REQUEST['oauth_verifier'])) {
                $oauthVerifier = $_REQUEST['oauth_verifier'];
            }
        }
        if (!empty($oauthVerifier)) {
            $defaultParams['oauth_verifier'] = $oauthVerifier;
        }
        $request = $this->createRequest()->setMethod($this->accessTokenMethod)->setUrl($this->accessTokenUrl)->setData(array_merge($defaultParams, $params));
        $this->signRequest($request, $requestToken);
        $response = $this->sendRequest($request);
        $token = $this->createToken(['params' => $response]);
        $this->setAccessToken($token);
        return $token;
    }

Usage Example

 /**
  * @return bool
  * @throws Exception
  * @throws Exception
  */
 public function connect()
 {
     if ($this->service instanceof OAuth1) {
         try {
             $accessToken = $this->service->fetchAccessToken();
             return $this->isConnected($accessToken);
         } catch (Exception $e) {
             Yii::$app->session->setFlash($this->flash, $e->getMessage());
             return false;
         }
     } elseif ($this->service instanceof OAuth2) {
         try {
             $accessToken = $this->service->fetchAccessToken(Yii::$app->request->get('code', null));
             return $this->isConnected($accessToken);
         } catch (Exception $e) {
             Yii::$app->session->setFlash($this->flash, $e->getMessage());
             return false;
         }
     } else {
         throw new Exception(Yii::t('SyncSocial', 'SyncSocial is not support {serviceName}.', ['serviceName' => get_class($this->service)]));
     }
 }
All Usage Examples Of yii\authclient\OAuth1::fetchAccessToken