Verzeichnisstruktur phpBB-3.2.0
- Veröffentlicht
- 06.01.2017
So funktioniert es
|
Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück |
Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
Pocket.php
001 <?php
002
003 namespace OAuth\OAuth2\Service;
004
005 use OAuth\OAuth2\Token\StdOAuth2Token;
006 use OAuth\Common\Http\Exception\TokenResponseException;
007 use OAuth\Common\Http\Uri\Uri;
008 use OAuth\Common\Consumer\CredentialsInterface;
009 use OAuth\Common\Http\Uri\UriInterface;
010 use OAuth\Common\Storage\TokenStorageInterface;
011 use OAuth\Common\Http\Client\ClientInterface;
012
013 class Pocket extends AbstractService
014 {
015 public function __construct(
016 CredentialsInterface $credentials,
017 ClientInterface $httpClient,
018 TokenStorageInterface $storage,
019 $scopes = array(),
020 UriInterface $baseApiUri = null
021 ) {
022 parent::__construct($credentials, $httpClient, $storage, $scopes, $baseApiUri);
023 if ($baseApiUri === null) {
024 $this->baseApiUri = new Uri('https://getpocket.com/v3/');
025 }
026 }
027
028 public function getRequestTokenEndpoint()
029 {
030 return new Uri('https://getpocket.com/v3/oauth/request');
031 }
032
033 public function getAuthorizationEndpoint()
034 {
035 return new Uri('https://getpocket.com/auth/authorize');
036 }
037
038 public function getAccessTokenEndpoint()
039 {
040 return new Uri('https://getpocket.com/v3/oauth/authorize');
041 }
042
043 public function getAuthorizationUri(array $additionalParameters = array())
044 {
045 $parameters = array_merge(
046 $additionalParameters,
047 array(
048 'redirect_uri' => $this->credentials->getCallbackUrl(),
049 )
050 );
051
052 // Build the url
053 $url = clone $this->getAuthorizationEndpoint();
054 foreach ($parameters as $key => $val) {
055 $url->addToQuery($key, $val);
056 }
057
058 return $url;
059 }
060
061 public function requestRequestToken()
062 {
063 $responseBody = $this->httpClient->retrieveResponse(
064 $this->getRequestTokenEndpoint(),
065 array(
066 'consumer_key' => $this->credentials->getConsumerId(),
067 'redirect_uri' => $this->credentials->getCallbackUrl(),
068 )
069 );
070
071 $code = $this->parseRequestTokenResponse($responseBody);
072
073 return $code;
074 }
075
076 protected function parseRequestTokenResponse($responseBody)
077 {
078 parse_str($responseBody, $data);
079
080 if (null === $data || !is_array($data)) {
081 throw new TokenResponseException('Unable to parse response.');
082 } elseif (!isset($data['code'])) {
083 throw new TokenResponseException('Error in retrieving code.');
084 }
085 return $data['code'];
086 }
087
088 public function requestAccessToken($code)
089 {
090 $bodyParams = array(
091 'consumer_key' => $this->credentials->getConsumerId(),
092 'code' => $code,
093 );
094
095 $responseBody = $this->httpClient->retrieveResponse(
096 $this->getAccessTokenEndpoint(),
097 $bodyParams,
098 $this->getExtraOAuthHeaders()
099 );
100 $token = $this->parseAccessTokenResponse($responseBody);
101 $this->storage->storeAccessToken($this->service(), $token);
102
103 return $token;
104 }
105
106 protected function parseAccessTokenResponse($responseBody)
107 {
108 parse_str($responseBody, $data);
109
110 if ($data === null || !is_array($data)) {
111 throw new TokenResponseException('Unable to parse response.');
112 } elseif (isset($data['error'])) {
113 throw new TokenResponseException('Error in retrieving token: "' . $data['error'] . '"');
114 }
115
116 $token = new StdOAuth2Token();
117 #$token->setRequestToken($data['access_token']);
118 $token->setAccessToken($data['access_token']);
119 $token->setEndOfLife(StdOAuth2Token::EOL_NEVER_EXPIRES);
120 unset($data['access_token']);
121 $token->setExtraParams($data);
122
123 return $token;
124 }
125 }
126