[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

/vendor/carlos-mg89/oauth/src/OAuth/OAuth1/Service/ -> Etsy.php (source)

   1  <?php
   2  
   3  namespace OAuth\OAuth1\Service;
   4  
   5  use OAuth\Common\Consumer\CredentialsInterface;
   6  use OAuth\Common\Http\Client\ClientInterface;
   7  use OAuth\Common\Http\Exception\TokenResponseException;
   8  use OAuth\Common\Http\Uri\Uri;
   9  use OAuth\Common\Http\Uri\UriInterface;
  10  use OAuth\Common\Storage\TokenStorageInterface;
  11  use OAuth\OAuth1\Signature\SignatureInterface;
  12  use OAuth\OAuth1\Token\StdOAuth1Token;
  13  
  14  class Etsy extends AbstractService
  15  {
  16      protected $scopes = [];
  17  
  18      public function __construct(
  19          CredentialsInterface $credentials,
  20          ClientInterface $httpClient,
  21          TokenStorageInterface $storage,
  22          SignatureInterface $signature,
  23          ?UriInterface $baseApiUri = null
  24      ) {
  25          parent::__construct($credentials, $httpClient, $storage, $signature, $baseApiUri);
  26  
  27          if (null === $baseApiUri) {
  28              $this->baseApiUri = new Uri('https://openapi.etsy.com/v2/');
  29          }
  30      }
  31  
  32      /**
  33       * {@inheritdoc}
  34       */
  35      public function getRequestTokenEndpoint()
  36      {
  37          $uri = new Uri($this->baseApiUri . 'oauth/request_token');
  38          $scopes = $this->getScopes();
  39  
  40          if (count($scopes)) {
  41              $uri->setQuery('scope=' . implode('%20', $scopes));
  42          }
  43  
  44          return $uri;
  45      }
  46  
  47      /**
  48       * {@inheritdoc}
  49       */
  50      public function getAuthorizationEndpoint()
  51      {
  52          return new Uri($this->baseApiUri);
  53      }
  54  
  55      /**
  56       * {@inheritdoc}
  57       */
  58      public function getAccessTokenEndpoint()
  59      {
  60          return new Uri($this->baseApiUri . 'oauth/access_token');
  61      }
  62  
  63      /**
  64       * {@inheritdoc}
  65       */
  66      protected function parseRequestTokenResponse($responseBody)
  67      {
  68          parse_str($responseBody, $data);
  69  
  70          if (null === $data || !is_array($data)) {
  71              throw new TokenResponseException('Unable to parse response.');
  72          } elseif (!isset($data['oauth_callback_confirmed']) || $data['oauth_callback_confirmed'] !== 'true') {
  73              throw new TokenResponseException('Error in retrieving token.');
  74          }
  75  
  76          return $this->parseAccessTokenResponse($responseBody);
  77      }
  78  
  79      /**
  80       * {@inheritdoc}
  81       */
  82      protected function parseAccessTokenResponse($responseBody)
  83      {
  84          parse_str($responseBody, $data);
  85  
  86          if (null === $data || !is_array($data)) {
  87              throw new TokenResponseException('Unable to parse response.');
  88          } elseif (isset($data['error'])) {
  89              throw new TokenResponseException('Error in retrieving token: "' . $data['error'] . '"');
  90          }
  91  
  92          $token = new StdOAuth1Token();
  93  
  94          $token->setRequestToken($data['oauth_token']);
  95          $token->setRequestTokenSecret($data['oauth_token_secret']);
  96          $token->setAccessToken($data['oauth_token']);
  97          $token->setAccessTokenSecret($data['oauth_token_secret']);
  98  
  99          $token->setEndOfLife(StdOAuth1Token::EOL_NEVER_EXPIRES);
 100          unset($data['oauth_token'], $data['oauth_token_secret']);
 101          $token->setExtraParams($data);
 102  
 103          return $token;
 104      }
 105  
 106      /**
 107       * Set the scopes for permissions.
 108       *
 109       * @see https://www.etsy.com/developers/documentation/getting_started/oauth#section_permission_scopes
 110       *
 111       * @return $this
 112       */
 113      public function setScopes(array $scopes)
 114      {
 115          if (!is_array($scopes)) {
 116              $scopes = [];
 117          }
 118  
 119          $this->scopes = $scopes;
 120  
 121          return $this;
 122      }
 123  
 124      /**
 125       * Return the defined scopes.
 126       *
 127       * @return array
 128       */
 129      public function getScopes()
 130      {
 131          return $this->scopes;
 132      }
 133  }


Generated: Mon Nov 25 19:05:08 2024 Cross-referenced by PHPXref 0.7.1