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 |
Bitrix24.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\Client\ClientInterface;
010 use OAuth\Common\Storage\TokenStorageInterface;
011 use OAuth\Common\Http\Uri\UriInterface;
012
013 class Bitrix24 extends AbstractService
014 {
015 const SCOPE_DEPARTMENT = 'department';
016 const SCOPE_CRM = 'crm';
017 const SCOPE_CALENDAR = 'calendar';
018 const SCOPE_USER = 'user';
019 const SCOPE_ENTITY = 'entity';
020 const SCOPE_TASK = 'task';
021 const SCOPE_TASKS_EXTENDED = 'tasks_extended';
022 const SCOPE_IM = 'im';
023 const SCOPE_LOG = 'log';
024 const SCOPE_SONET_GROUP = 'sonet_group';
025
026 /**
027 * {@inheritdoc}
028 */
029 public function getAuthorizationEndpoint()
030 {
031 return new Uri(sprintf('%s/oauth/authorize/', $this->baseApiUri));
032 }
033
034 /**
035 * {@inheritdoc}
036 */
037 public function getAccessTokenEndpoint()
038 {
039 return new Uri(sprintf('%s/oauth/token/', $this->baseApiUri));
040 }
041
042 /**
043 * {@inheritdoc}
044 */
045 public function requestAccessToken($code, $state = null)
046 {
047 if (null !== $state) {
048 $this->validateAuthorizationState($state);
049 }
050
051 $responseBody = $this->httpClient->retrieveResponse(
052 $this->getAccessTokenUri($code),
053 array(),
054 $this->getExtraOAuthHeaders(),
055 'GET'
056 );
057
058 $token = $this->parseAccessTokenResponse($responseBody);
059 $this->storage->storeAccessToken($this->service(), $token);
060
061 return $token;
062 }
063
064 /**
065 * {@inheritdoc}
066 */
067 public function getAccessTokenUri($code)
068 {
069 $parameters = array(
070 'code' => $code,
071 'client_id' => $this->credentials->getConsumerId(),
072 'client_secret' => $this->credentials->getConsumerSecret(),
073 'redirect_uri' => $this->credentials->getCallbackUrl(),
074 'grant_type' => 'authorization_code',
075 'scope' => $this->scopes
076 );
077
078 $parameters['scope'] = implode(' ', $this->scopes);
079
080 // Build the url
081 $url = $this->getAccessTokenEndpoint();
082 foreach ($parameters as $key => $val) {
083 $url->addToQuery($key, $val);
084 }
085
086 return $url;
087 }
088
089 /**
090 * {@inheritdoc}
091 */
092 protected function parseAccessTokenResponse($responseBody)
093 {
094 $data = json_decode($responseBody, true);
095
096 if (null === $data || !is_array($data)) {
097 throw new TokenResponseException('Unable to parse response.');
098 } elseif (isset($data['error'])) {
099 throw new TokenResponseException('Error in retrieving token: "' . $data['error'] . '"');
100 }
101
102 $token = new StdOAuth2Token();
103 $token->setAccessToken($data['access_token']);
104 $token->setLifetime($data['expires_in']);
105
106 if (isset($data['refresh_token'])) {
107 $token->setRefreshToken($data['refresh_token']);
108 unset($data['refresh_token']);
109 }
110
111 unset($data['access_token']);
112 unset($data['expires_in']);
113
114 $token->setExtraParams($data);
115
116 return $token;
117 }
118 }
119