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.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

Facebook.php

Zuletzt modifiziert: 09.10.2024, 12:59 - Dateigröße: 9.50 KiB


001  <?php
002   
003  namespace OAuth\OAuth2\Service;
004   
005  use OAuth\Common\Exception\Exception;
006  use OAuth\OAuth2\Token\StdOAuth2Token;
007  use OAuth\Common\Http\Exception\TokenResponseException;
008  use OAuth\Common\Http\Uri\Uri;
009  use OAuth\Common\Consumer\CredentialsInterface;
010  use OAuth\Common\Http\Client\ClientInterface;
011  use OAuth\Common\Storage\TokenStorageInterface;
012  use OAuth\Common\Http\Uri\UriInterface;
013   
014  class Facebook extends AbstractService
015  {
016      /**
017       * Facebook www url - used to build dialog urls
018       */
019      const WWW_URL = 'https://www.facebook.com/';
020   
021      /**
022       * Defined scopes
023       *
024       * If you don't think this is scary you should not be allowed on the web at all
025       *
026       * @link https://developers.facebook.com/docs/reference/login/
027       * @link https://developers.facebook.com/tools/explorer For a list of permissions use 'Get Access Token'
028       */
029      // Default scope
030      const SCOPE_PUBLIC_PROFILE                = 'public_profile';
031      // Email scopes
032      const SCOPE_EMAIL                         = 'email';
033      // Extended permissions
034      const SCOPE_READ_FRIENDLIST               = 'read_friendlists';
035      const SCOPE_READ_INSIGHTS                 = 'read_insights';
036      const SCOPE_READ_MAILBOX                  = 'read_mailbox';
037      const SCOPE_READ_PAGE_MAILBOXES           = 'read_page_mailboxes';
038      const SCOPE_READ_REQUESTS                 = 'read_requests';
039      const SCOPE_READ_STREAM                   = 'read_stream';
040      const SCOPE_VIDEO_UPLOAD                  = 'video_upload';
041      const SCOPE_XMPP_LOGIN                    = 'xmpp_login';
042      const SCOPE_USER_ONLINE_PRESENCE          = 'user_online_presence';
043      const SCOPE_FRIENDS_ONLINE_PRESENCE       = 'friends_online_presence';
044      const SCOPE_ADS_MANAGEMENT                = 'ads_management';
045      const SCOPE_ADS_READ                      = 'ads_read';
046      const SCOPE_CREATE_EVENT                  = 'create_event';
047      const SCOPE_CREATE_NOTE                   = 'create_note';
048      const SCOPE_EXPORT_STREAM                 = 'export_stream';
049      const SCOPE_MANAGE_FRIENDLIST             = 'manage_friendlists';
050      const SCOPE_MANAGE_NOTIFICATIONS          = 'manage_notifications';
051      const SCOPE_PHOTO_UPLOAD                  = 'photo_upload';
052      const SCOPE_PUBLISH_ACTIONS               = 'publish_actions';
053      const SCOPE_PUBLISH_CHECKINS              = 'publish_checkins';
054      const SCOPE_PUBLISH_STREAM                = 'publish_stream';
055      const SCOPE_RSVP_EVENT                    = 'rsvp_event';
056      const SCOPE_SHARE_ITEM                    = 'share_item';
057      const SCOPE_SMS                           = 'sms';
058      const SCOPE_STATUS_UPDATE                 = 'status_update';
059      // Extended Profile Properties
060      const SCOPE_USER_POSTS                    = 'user_posts';
061      const SCOPE_USER_FRIENDS                  = 'user_friends';
062      const SCOPE_USER_ABOUT                    = 'user_about_me';
063      const SCOPE_USER_TAGGED_PLACES            = 'user_tagged_places';
064      const SCOPE_FRIENDS_ABOUT                 = 'friends_about_me';
065      const SCOPE_USER_ACTIVITIES               = 'user_activities';
066      const SCOPE_FRIENDS_ACTIVITIES            = 'friends_activities';
067      const SCOPE_USER_BIRTHDAY                 = 'user_birthday';
068      const SCOPE_FRIENDS_BIRTHDAY              = 'friends_birthday';
069      const SCOPE_USER_CHECKINS                 = 'user_checkins';
070      const SCOPE_FRIENDS_CHECKINS              = 'friends_checkins';
071      const SCOPE_USER_EDUCATION                = 'user_education_history';
072      const SCOPE_FRIENDS_EDUCATION             = 'friends_education_history';
073      const SCOPE_USER_EVENTS                   = 'user_events';
074      const SCOPE_FRIENDS_EVENTS                = 'friends_events';
075      const SCOPE_USER_GROUPS                   = 'user_groups';
076      const SCOPE_USER_MANAGED_GROUPS           = 'user_managed_groups';
077      const SCOPE_FRIENDS_GROUPS                = 'friends_groups';
078      const SCOPE_USER_HOMETOWN                 = 'user_hometown';
079      const SCOPE_FRIENDS_HOMETOWN              = 'friends_hometown';
080      const SCOPE_USER_INTERESTS                = 'user_interests';
081      const SCOPE_FRIEND_INTERESTS              = 'friends_interests';
082      const SCOPE_USER_LIKES                    = 'user_likes';
083      const SCOPE_FRIENDS_LIKES                 = 'friends_likes';
084      const SCOPE_USER_LOCATION                 = 'user_location';
085      const SCOPE_FRIENDS_LOCATION              = 'friends_location';
086      const SCOPE_USER_NOTES                    = 'user_notes';
087      const SCOPE_FRIENDS_NOTES                 = 'friends_notes';
088      const SCOPE_USER_PHOTOS                   = 'user_photos';
089      const SCOPE_USER_PHOTO_VIDEO_TAGS         = 'user_photo_video_tags';
090      const SCOPE_FRIENDS_PHOTOS                = 'friends_photos';
091      const SCOPE_FRIENDS_PHOTO_VIDEO_TAGS      = 'friends_photo_video_tags';
092      const SCOPE_USER_QUESTIONS                = 'user_questions';
093      const SCOPE_FRIENDS_QUESTIONS             = 'friends_questions';
094      const SCOPE_USER_RELATIONSHIPS            = 'user_relationships';
095      const SCOPE_FRIENDS_RELATIONSHIPS         = 'friends_relationships';
096      const SCOPE_USER_RELATIONSHIPS_DETAILS    = 'user_relationship_details';
097      const SCOPE_FRIENDS_RELATIONSHIPS_DETAILS = 'friends_relationship_details';
098      const SCOPE_USER_RELIGION                 = 'user_religion_politics';
099      const SCOPE_FRIENDS_RELIGION              = 'friends_religion_politics';
100      const SCOPE_USER_STATUS                   = 'user_status';
101      const SCOPE_FRIENDS_STATUS                = 'friends_status';
102      const SCOPE_USER_SUBSCRIPTIONS            = 'user_subscriptions';
103      const SCOPE_FRIENDS_SUBSCRIPTIONS         = 'friends_subscriptions';
104      const SCOPE_USER_VIDEOS                   = 'user_videos';
105      const SCOPE_FRIENDS_VIDEOS                = 'friends_videos';
106      const SCOPE_USER_WEBSITE                  = 'user_website';
107      const SCOPE_FRIENDS_WEBSITE               = 'friends_website';
108      const SCOPE_USER_WORK                     = 'user_work_history';
109      const SCOPE_FRIENDS_WORK                  = 'friends_work_history';
110      // Open Graph Permissions
111      const SCOPE_USER_MUSIC                    = 'user_actions.music';
112      const SCOPE_FRIENDS_MUSIC                 = 'friends_actions.music';
113      const SCOPE_USER_NEWS                     = 'user_actions.news';
114      const SCOPE_FRIENDS_NEWS                  = 'friends_actions.news';
115      const SCOPE_USER_VIDEO                    = 'user_actions.video';
116      const SCOPE_FRIENDS_VIDEO                 = 'friends_actions.video';
117      const SCOPE_USER_APP                      = 'user_actions:APP_NAMESPACE';
118      const SCOPE_FRIENDS_APP                   = 'friends_actions:APP_NAMESPACE';
119      const SCOPE_USER_GAMES                    = 'user_games_activity';
120      const SCOPE_FRIENDS_GAMES                 = 'friends_games_activity';
121      //Page Permissions
122      const SCOPE_PAGES                         = 'manage_pages';
123      const SCOPE_PUBLISH_PAGES                 = 'publish_pages';
124   
125      public function __construct(
126          CredentialsInterface $credentials,
127          ClientInterface $httpClient,
128          TokenStorageInterface $storage,
129          $scopes = array(),
130          UriInterface $baseApiUri = null,
131          $apiVersion = ""
132      ) {
133          parent::__construct($credentials, $httpClient, $storage, $scopes, $baseApiUri, true, $apiVersion);
134   
135          if (null === $baseApiUri) {
136              $this->baseApiUri = new Uri('https://graph.facebook.com'.$this->getApiVersionString().'/');
137          }
138      }
139   
140      /**
141       * {@inheritdoc}
142       */
143      public function getAuthorizationEndpoint()
144      {
145          return new Uri('https://www.facebook.com'.$this->getApiVersionString().'/dialog/oauth');
146      }
147   
148      /**
149       * {@inheritdoc}
150       */
151      public function getAccessTokenEndpoint()
152      {
153          return new Uri('https://graph.facebook.com'.$this->getApiVersionString().'/oauth/access_token');
154      }
155   
156      /**
157       * {@inheritdoc}
158       */
159      protected function parseAccessTokenResponse($responseBody)
160      {
161          // Facebook gives us a query string ... Oh wait. JSON is too simple, understand ?
162          parse_str($responseBody, $data);
163   
164          if (null === $data || !is_array($data)) {
165              throw new TokenResponseException('Unable to parse response.');
166          } elseif (isset($data['error'])) {
167              throw new TokenResponseException('Error in retrieving token: "' . $data['error'] . '"');
168          }
169   
170          $token = new StdOAuth2Token();
171          $token->setAccessToken($data['access_token']);
172   
173          if (isset($data['expires'])) {
174              $token->setLifeTime($data['expires']);
175          }
176   
177          if (isset($data['refresh_token'])) {
178              $token->setRefreshToken($data['refresh_token']);
179              unset($data['refresh_token']);
180          }
181   
182          unset($data['access_token']);
183          unset($data['expires']);
184   
185          $token->setExtraParams($data);
186   
187          return $token;
188      }
189   
190      public function getDialogUri($dialogPath, array $parameters)
191      {
192          if (!isset($parameters['redirect_uri'])) {
193              throw new Exception("Redirect uri is mandatory for this request");
194          }
195          $parameters['app_id'] = $this->credentials->getConsumerId();
196          $baseUrl = self::WWW_URL .$this->getApiVersionString(). '/dialog/' . $dialogPath;
197          $query = http_build_query($parameters);
198          return new Uri($baseUrl . '?' . $query);
199      }
200   
201      /**
202       * {@inheritdoc}
203       */
204      protected function getApiVersionString()
205      {
206          return empty($this->apiVersion) ? '' : '/v' . $this->apiVersion;
207      }
208   
209      /**
210       * {@inheritdoc}
211       */
212      protected function getScopesDelimiter()
213      {
214          return ',';
215      }
216  }
217