/**
  * Retrieve an OAuthAccessor that is ready to sign OAuthMessages.
  *
  * @param tokenKey information about the gadget retrieving the accessor.
  *
  * @return an OAuthAccessorInfo containing an OAuthAccessor (whic can be
  *         passed to an OAuthMessage.sign method), as well as httpMethod and
  *         signatureType fields.
  */
 public function getOAuthAccessor(TokenKey $tokenKey, $ignoreCache)
 {
     $gadgetUri = $tokenKey->getGadgetUri();
     if (empty($gadgetUri)) {
         throw new OAuthStoreException("found empty gadget URI in TokenKey");
     }
     $getUserId = $tokenKey->getUserId();
     if (empty($getUserId)) {
         throw new OAuthStoreException("found empty userId in TokenKey");
     }
     $gadgetSpec = $this->specFactory->getGadgetSpecUri($gadgetUri, $ignoreCache);
     $provInfo = $this->getProviderInfo($gadgetSpec, $tokenKey->getServiceName());
     return $this->store->getOAuthAccessorTokenKey($tokenKey, $provInfo);
 }