diff options
author | M.Gergo | 2019-03-08 21:20:34 +0100 |
---|---|---|
committer | M.Gergo | 2019-03-08 21:20:34 +0100 |
commit | f51c9ed2abe5c68211bb3736be5f70b1fe2c9ec0 (patch) | |
tree | e13e60e4b94a3b58f1e2bfbe271102c8f04b67bd /mayor-orig/www/include/share/facebook | |
parent | c76a004b0135786f2742283f8d5f917106f58bd8 (diff) | |
download | mayor-f51c9ed2abe5c68211bb3736be5f70b1fe2c9ec0.tar.gz mayor-f51c9ed2abe5c68211bb3736be5f70b1fe2c9ec0.zip |
további rendrakás
Diffstat (limited to 'mayor-orig/www/include/share/facebook')
77 files changed, 0 insertions, 11398 deletions
diff --git a/mayor-orig/www/include/share/facebook/Authentication/AccessToken.php b/mayor-orig/www/include/share/facebook/Authentication/AccessToken.php deleted file mode 100644 index 5d700733..00000000 --- a/mayor-orig/www/include/share/facebook/Authentication/AccessToken.php +++ /dev/null @@ -1,160 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Authentication; - -/** - * Class AccessToken - * - * @package Facebook - */ -class AccessToken -{ - /** - * The access token value. - * - * @var string - */ - protected $value = ''; - - /** - * Date when token expires. - * - * @var \DateTime|null - */ - protected $expiresAt; - - /** - * Create a new access token entity. - * - * @param string $accessToken - * @param int $expiresAt - */ - public function __construct($accessToken, $expiresAt = 0) - { - $this->value = $accessToken; - if ($expiresAt) { - $this->setExpiresAtFromTimeStamp($expiresAt); - } - } - - /** - * Generate an app secret proof to sign a request to Graph. - * - * @param string $appSecret The app secret. - * - * @return string - */ - public function getAppSecretProof($appSecret) - { - return hash_hmac('sha256', $this->value, $appSecret); - } - - /** - * Getter for expiresAt. - * - * @return \DateTime|null - */ - public function getExpiresAt() - { - return $this->expiresAt; - } - - /** - * Determines whether or not this is an app access token. - * - * @return bool - */ - public function isAppAccessToken() - { - return strpos($this->value, '|') !== false; - } - - /** - * Determines whether or not this is a long-lived token. - * - * @return bool - */ - public function isLongLived() - { - if ($this->expiresAt) { - return $this->expiresAt->getTimestamp() > time() + (60 * 60 * 2); - } - - if ($this->isAppAccessToken()) { - return true; - } - - return false; - } - - /** - * Checks the expiration of the access token. - * - * @return boolean|null - */ - public function isExpired() - { - if ($this->getExpiresAt() instanceof \DateTime) { - return $this->getExpiresAt()->getTimestamp() < time(); - } - - if ($this->isAppAccessToken()) { - return false; - } - - return null; - } - - /** - * Returns the access token as a string. - * - * @return string - */ - public function getValue() - { - return $this->value; - } - - /** - * Returns the access token as a string. - * - * @return string - */ - public function __toString() - { - return $this->getValue(); - } - - /** - * Setter for expires_at. - * - * @param int $timeStamp - */ - protected function setExpiresAtFromTimeStamp($timeStamp) - { - $dt = new \DateTime(); - $dt->setTimestamp($timeStamp); - $this->expiresAt = $dt; - } -} diff --git a/mayor-orig/www/include/share/facebook/Authentication/AccessTokenMetadata.php b/mayor-orig/www/include/share/facebook/Authentication/AccessTokenMetadata.php deleted file mode 100644 index 165433cb..00000000 --- a/mayor-orig/www/include/share/facebook/Authentication/AccessTokenMetadata.php +++ /dev/null @@ -1,390 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Authentication; - -use Facebook\Exceptions\FacebookSDKException; - -/** - * Class AccessTokenMetadata - * - * Represents metadata from an access token. - * - * @package Facebook - * @see https://developers.facebook.com/docs/graph-api/reference/debug_token - */ -class AccessTokenMetadata -{ - /** - * The access token metadata. - * - * @var array - */ - protected $metadata = []; - - /** - * Properties that should be cast as DateTime objects. - * - * @var array - */ - protected static $dateProperties = ['expires_at', 'issued_at']; - - /** - * @param array $metadata - * - * @throws FacebookSDKException - */ - public function __construct(array $metadata) - { - if (!isset($metadata['data'])) { - throw new FacebookSDKException('Unexpected debug token response data.', 401); - } - - $this->metadata = $metadata['data']; - - $this->castTimestampsToDateTime(); - } - - /** - * Returns a value from the metadata. - * - * @param string $field The property to retrieve. - * @param mixed $default The default to return if the property doesn't exist. - * - * @return mixed - */ - public function getField($field, $default = null) - { - if (isset($this->metadata[$field])) { - return $this->metadata[$field]; - } - - return $default; - } - - /** - * Returns a value from the metadata. - * - * @param string $field The property to retrieve. - * @param mixed $default The default to return if the property doesn't exist. - * - * @return mixed - * - * @deprecated 5.0.0 getProperty() has been renamed to getField() - * @todo v6: Remove this method - */ - public function getProperty($field, $default = null) - { - return $this->getField($field, $default); - } - - /** - * Returns a value from a child property in the metadata. - * - * @param string $parentField The parent property. - * @param string $field The property to retrieve. - * @param mixed $default The default to return if the property doesn't exist. - * - * @return mixed - */ - public function getChildProperty($parentField, $field, $default = null) - { - if (!isset($this->metadata[$parentField])) { - return $default; - } - - if (!isset($this->metadata[$parentField][$field])) { - return $default; - } - - return $this->metadata[$parentField][$field]; - } - - /** - * Returns a value from the error metadata. - * - * @param string $field The property to retrieve. - * @param mixed $default The default to return if the property doesn't exist. - * - * @return mixed - */ - public function getErrorProperty($field, $default = null) - { - return $this->getChildProperty('error', $field, $default); - } - - /** - * Returns a value from the "metadata" metadata. *Brain explodes* - * - * @param string $field The property to retrieve. - * @param mixed $default The default to return if the property doesn't exist. - * - * @return mixed - */ - public function getMetadataProperty($field, $default = null) - { - return $this->getChildProperty('metadata', $field, $default); - } - - /** - * The ID of the application this access token is for. - * - * @return string|null - */ - public function getAppId() - { - return $this->getField('app_id'); - } - - /** - * Name of the application this access token is for. - * - * @return string|null - */ - public function getApplication() - { - return $this->getField('application'); - } - - /** - * Any error that a request to the graph api - * would return due to the access token. - * - * @return bool|null - */ - public function isError() - { - return $this->getField('error') !== null; - } - - /** - * The error code for the error. - * - * @return int|null - */ - public function getErrorCode() - { - return $this->getErrorProperty('code'); - } - - /** - * The error message for the error. - * - * @return string|null - */ - public function getErrorMessage() - { - return $this->getErrorProperty('message'); - } - - /** - * The error subcode for the error. - * - * @return int|null - */ - public function getErrorSubcode() - { - return $this->getErrorProperty('subcode'); - } - - /** - * DateTime when this access token expires. - * - * @return \DateTime|null - */ - public function getExpiresAt() - { - return $this->getField('expires_at'); - } - - /** - * Whether the access token is still valid or not. - * - * @return boolean|null - */ - public function getIsValid() - { - return $this->getField('is_valid'); - } - - /** - * DateTime when this access token was issued. - * - * Note that the issued_at field is not returned - * for short-lived access tokens. - * - * @see https://developers.facebook.com/docs/facebook-login/access-tokens#debug - * - * @return \DateTime|null - */ - public function getIssuedAt() - { - return $this->getField('issued_at'); - } - - /** - * General metadata associated with the access token. - * Can contain data like 'sso', 'auth_type', 'auth_nonce'. - * - * @return array|null - */ - public function getMetadata() - { - return $this->getField('metadata'); - } - - /** - * The 'sso' child property from the 'metadata' parent property. - * - * @return string|null - */ - public function getSso() - { - return $this->getMetadataProperty('sso'); - } - - /** - * The 'auth_type' child property from the 'metadata' parent property. - * - * @return string|null - */ - public function getAuthType() - { - return $this->getMetadataProperty('auth_type'); - } - - /** - * The 'auth_nonce' child property from the 'metadata' parent property. - * - * @return string|null - */ - public function getAuthNonce() - { - return $this->getMetadataProperty('auth_nonce'); - } - - /** - * For impersonated access tokens, the ID of - * the page this token contains. - * - * @return string|null - */ - public function getProfileId() - { - return $this->getField('profile_id'); - } - - /** - * List of permissions that the user has granted for - * the app in this access token. - * - * @return array - */ - public function getScopes() - { - return $this->getField('scopes'); - } - - /** - * The ID of the user this access token is for. - * - * @return string|null - */ - public function getUserId() - { - return $this->getField('user_id'); - } - - /** - * Ensures the app ID from the access token - * metadata is what we expect. - * - * @param string $appId - * - * @throws FacebookSDKException - */ - public function validateAppId($appId) - { - if ($this->getAppId() !== $appId) { - throw new FacebookSDKException('Access token metadata contains unexpected app ID.', 401); - } - } - - /** - * Ensures the user ID from the access token - * metadata is what we expect. - * - * @param string $userId - * - * @throws FacebookSDKException - */ - public function validateUserId($userId) - { - if ($this->getUserId() !== $userId) { - throw new FacebookSDKException('Access token metadata contains unexpected user ID.', 401); - } - } - - /** - * Ensures the access token has not expired yet. - * - * @throws FacebookSDKException - */ - public function validateExpiration() - { - if (!$this->getExpiresAt() instanceof \DateTime) { - return; - } - - if ($this->getExpiresAt()->getTimestamp() < time()) { - throw new FacebookSDKException('Inspection of access token metadata shows that the access token has expired.', 401); - } - } - - /** - * Converts a unix timestamp into a DateTime entity. - * - * @param int $timestamp - * - * @return \DateTime - */ - private function convertTimestampToDateTime($timestamp) - { - $dt = new \DateTime(); - $dt->setTimestamp($timestamp); - - return $dt; - } - - /** - * Casts the unix timestamps as DateTime entities. - */ - private function castTimestampsToDateTime() - { - foreach (static::$dateProperties as $key) { - if (isset($this->metadata[$key]) && $this->metadata[$key] !== 0) { - $this->metadata[$key] = $this->convertTimestampToDateTime($this->metadata[$key]); - } - } - } -} diff --git a/mayor-orig/www/include/share/facebook/Authentication/OAuth2Client.php b/mayor-orig/www/include/share/facebook/Authentication/OAuth2Client.php deleted file mode 100644 index 94df9b7b..00000000 --- a/mayor-orig/www/include/share/facebook/Authentication/OAuth2Client.php +++ /dev/null @@ -1,292 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Authentication; - -use Facebook\Facebook; -use Facebook\FacebookApp; -use Facebook\FacebookRequest; -use Facebook\FacebookResponse; -use Facebook\FacebookClient; -use Facebook\Exceptions\FacebookResponseException; -use Facebook\Exceptions\FacebookSDKException; - -/** - * Class OAuth2Client - * - * @package Facebook - */ -class OAuth2Client -{ - /** - * @const string The base authorization URL. - */ - const BASE_AUTHORIZATION_URL = 'https://www.facebook.com'; - - /** - * The FacebookApp entity. - * - * @var FacebookApp - */ - protected $app; - - /** - * The Facebook client. - * - * @var FacebookClient - */ - protected $client; - - /** - * The version of the Graph API to use. - * - * @var string - */ - protected $graphVersion; - - /** - * The last request sent to Graph. - * - * @var FacebookRequest|null - */ - protected $lastRequest; - - /** - * @param FacebookApp $app - * @param FacebookClient $client - * @param string|null $graphVersion The version of the Graph API to use. - */ - public function __construct(FacebookApp $app, FacebookClient $client, $graphVersion = null) - { - $this->app = $app; - $this->client = $client; - $this->graphVersion = $graphVersion ?: Facebook::DEFAULT_GRAPH_VERSION; - } - - /** - * Returns the last FacebookRequest that was sent. - * Useful for debugging and testing. - * - * @return FacebookRequest|null - */ - public function getLastRequest() - { - return $this->lastRequest; - } - - /** - * Get the metadata associated with the access token. - * - * @param AccessToken|string $accessToken The access token to debug. - * - * @return AccessTokenMetadata - */ - public function debugToken($accessToken) - { - $accessToken = $accessToken instanceof AccessToken ? $accessToken->getValue() : $accessToken; - $params = ['input_token' => $accessToken]; - - $this->lastRequest = new FacebookRequest( - $this->app, - $this->app->getAccessToken(), - 'GET', - '/debug_token', - $params, - null, - $this->graphVersion - ); - $response = $this->client->sendRequest($this->lastRequest); - $metadata = $response->getDecodedBody(); - - return new AccessTokenMetadata($metadata); - } - - /** - * Generates an authorization URL to begin the process of authenticating a user. - * - * @param string $redirectUrl The callback URL to redirect to. - * @param string $state The CSPRNG-generated CSRF value. - * @param array $scope An array of permissions to request. - * @param array $params An array of parameters to generate URL. - * @param string $separator The separator to use in http_build_query(). - * - * @return string - */ - public function getAuthorizationUrl($redirectUrl, $state, array $scope = [], array $params = [], $separator = '&') - { - $params += [ - 'client_id' => $this->app->getId(), - 'state' => $state, - 'response_type' => 'code', - 'sdk' => 'php-sdk-' . Facebook::VERSION, - 'redirect_uri' => $redirectUrl, - 'scope' => implode(',', $scope) - ]; - - return static::BASE_AUTHORIZATION_URL . '/' . $this->graphVersion . '/dialog/oauth?' . http_build_query($params, null, $separator); - } - - /** - * Get a valid access token from a code. - * - * @param string $code - * @param string $redirectUri - * - * @return AccessToken - * - * @throws FacebookSDKException - */ - public function getAccessTokenFromCode($code, $redirectUri = '') - { - $params = [ - 'code' => $code, - 'redirect_uri' => $redirectUri, - ]; - - return $this->requestAnAccessToken($params); - } - - /** - * Exchanges a short-lived access token with a long-lived access token. - * - * @param AccessToken|string $accessToken - * - * @return AccessToken - * - * @throws FacebookSDKException - */ - public function getLongLivedAccessToken($accessToken) - { - $accessToken = $accessToken instanceof AccessToken ? $accessToken->getValue() : $accessToken; - $params = [ - 'grant_type' => 'fb_exchange_token', - 'fb_exchange_token' => $accessToken, - ]; - - return $this->requestAnAccessToken($params); - } - - /** - * Get a valid code from an access token. - * - * @param AccessToken|string $accessToken - * @param string $redirectUri - * - * @return AccessToken - * - * @throws FacebookSDKException - */ - public function getCodeFromLongLivedAccessToken($accessToken, $redirectUri = '') - { - $params = [ - 'redirect_uri' => $redirectUri, - ]; - - $response = $this->sendRequestWithClientParams('/oauth/client_code', $params, $accessToken); - $data = $response->getDecodedBody(); - - if (!isset($data['code'])) { - throw new FacebookSDKException('Code was not returned from Graph.', 401); - } - - return $data['code']; - } - - /** - * Send a request to the OAuth endpoint. - * - * @param array $params - * - * @return AccessToken - * - * @throws FacebookSDKException - */ - protected function requestAnAccessToken(array $params) - { - $response = $this->sendRequestWithClientParams('/oauth/access_token', $params); - $data = $response->getDecodedBody(); - - if (!isset($data['access_token'])) { - throw new FacebookSDKException('Access token was not returned from Graph.', 401); - } - - // Graph returns two different key names for expiration time - // on the same endpoint. Doh! :/ - $expiresAt = 0; - if (isset($data['expires'])) { - // For exchanging a short lived token with a long lived token. - // The expiration time in seconds will be returned as "expires". - $expiresAt = time() + $data['expires']; - } elseif (isset($data['expires_in'])) { - // For exchanging a code for a short lived access token. - // The expiration time in seconds will be returned as "expires_in". - // See: https://developers.facebook.com/docs/facebook-login/access-tokens#long-via-code - $expiresAt = time() + $data['expires_in']; - } - - return new AccessToken($data['access_token'], $expiresAt); - } - - /** - * Send a request to Graph with an app access token. - * - * @param string $endpoint - * @param array $params - * @param AccessToken|string|null $accessToken - * - * @return FacebookResponse - * - * @throws FacebookResponseException - */ - protected function sendRequestWithClientParams($endpoint, array $params, $accessToken = null) - { - $params += $this->getClientParams(); - - $accessToken = $accessToken ?: $this->app->getAccessToken(); - - $this->lastRequest = new FacebookRequest( - $this->app, - $accessToken, - 'GET', - $endpoint, - $params, - null, - $this->graphVersion - ); - - return $this->client->sendRequest($this->lastRequest); - } - - /** - * Returns the client_* params for OAuth requests. - * - * @return array - */ - protected function getClientParams() - { - return [ - 'client_id' => $this->app->getId(), - 'client_secret' => $this->app->getSecret(), - ]; - } -} diff --git a/mayor-orig/www/include/share/facebook/Exceptions/FacebookAuthenticationException.php b/mayor-orig/www/include/share/facebook/Exceptions/FacebookAuthenticationException.php deleted file mode 100644 index c5e45fa3..00000000 --- a/mayor-orig/www/include/share/facebook/Exceptions/FacebookAuthenticationException.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Exceptions; - -/** - * Class FacebookAuthenticationException - * - * @package Facebook - */ -class FacebookAuthenticationException extends FacebookSDKException -{ -} diff --git a/mayor-orig/www/include/share/facebook/Exceptions/FacebookAuthorizationException.php b/mayor-orig/www/include/share/facebook/Exceptions/FacebookAuthorizationException.php deleted file mode 100644 index 3a7f557c..00000000 --- a/mayor-orig/www/include/share/facebook/Exceptions/FacebookAuthorizationException.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Exceptions; - -/** - * Class FacebookAuthorizationException - * - * @package Facebook - */ -class FacebookAuthorizationException extends FacebookSDKException -{ -} diff --git a/mayor-orig/www/include/share/facebook/Exceptions/FacebookClientException.php b/mayor-orig/www/include/share/facebook/Exceptions/FacebookClientException.php deleted file mode 100644 index 6a899b77..00000000 --- a/mayor-orig/www/include/share/facebook/Exceptions/FacebookClientException.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Exceptions; - -/** - * Class FacebookClientException - * - * @package Facebook - */ -class FacebookClientException extends FacebookSDKException -{ -} diff --git a/mayor-orig/www/include/share/facebook/Exceptions/FacebookOtherException.php b/mayor-orig/www/include/share/facebook/Exceptions/FacebookOtherException.php deleted file mode 100644 index 06a33ac8..00000000 --- a/mayor-orig/www/include/share/facebook/Exceptions/FacebookOtherException.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Exceptions; - -/** - * Class FacebookOtherException - * - * @package Facebook - */ -class FacebookOtherException extends FacebookSDKException -{ -} diff --git a/mayor-orig/www/include/share/facebook/Exceptions/FacebookResponseException.php b/mayor-orig/www/include/share/facebook/Exceptions/FacebookResponseException.php deleted file mode 100644 index 4a135db1..00000000 --- a/mayor-orig/www/include/share/facebook/Exceptions/FacebookResponseException.php +++ /dev/null @@ -1,216 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Exceptions; - -use Facebook\FacebookResponse; - -/** - * Class FacebookResponseException - * - * @package Facebook - */ -class FacebookResponseException extends FacebookSDKException -{ - /** - * @var FacebookResponse The response that threw the exception. - */ - protected $response; - - /** - * @var array Decoded response. - */ - protected $responseData; - - /** - * Creates a FacebookResponseException. - * - * @param FacebookResponse $response The response that threw the exception. - * @param FacebookSDKException $previousException The more detailed exception. - */ - public function __construct(FacebookResponse $response, FacebookSDKException $previousException = null) - { - $this->response = $response; - $this->responseData = $response->getDecodedBody(); - - $errorMessage = $this->get('message', 'Unknown error from Graph.'); - $errorCode = $this->get('code', -1); - - parent::__construct($errorMessage, $errorCode, $previousException); - } - - /** - * A factory for creating the appropriate exception based on the response from Graph. - * - * @param FacebookResponse $response The response that threw the exception. - * - * @return FacebookResponseException - */ - public static function create(FacebookResponse $response) - { - $data = $response->getDecodedBody(); - - if (!isset($data['error']['code']) && isset($data['code'])) { - $data = ['error' => $data]; - } - - $code = isset($data['error']['code']) ? $data['error']['code'] : null; - $message = isset($data['error']['message']) ? $data['error']['message'] : 'Unknown error from Graph.'; - - if (isset($data['error']['error_subcode'])) { - switch ($data['error']['error_subcode']) { - // Other authentication issues - case 458: - case 459: - case 460: - case 463: - case 464: - case 467: - return new static($response, new FacebookAuthenticationException($message, $code)); - // Video upload resumable error - case 1363030: - case 1363019: - case 1363037: - case 1363033: - case 1363021: - case 1363041: - return new static($response, new FacebookResumableUploadException($message, $code)); - } - } - - switch ($code) { - // Login status or token expired, revoked, or invalid - case 100: - case 102: - case 190: - return new static($response, new FacebookAuthenticationException($message, $code)); - - // Server issue, possible downtime - case 1: - case 2: - return new static($response, new FacebookServerException($message, $code)); - - // API Throttling - case 4: - case 17: - case 32: - case 341: - case 613: - return new static($response, new FacebookThrottleException($message, $code)); - - // Duplicate Post - case 506: - return new static($response, new FacebookClientException($message, $code)); - } - - // Missing Permissions - if ($code == 10 || ($code >= 200 && $code <= 299)) { - return new static($response, new FacebookAuthorizationException($message, $code)); - } - - // OAuth authentication error - if (isset($data['error']['type']) && $data['error']['type'] === 'OAuthException') { - return new static($response, new FacebookAuthenticationException($message, $code)); - } - - // All others - return new static($response, new FacebookOtherException($message, $code)); - } - - /** - * Checks isset and returns that or a default value. - * - * @param string $key - * @param mixed $default - * - * @return mixed - */ - private function get($key, $default = null) - { - if (isset($this->responseData['error'][$key])) { - return $this->responseData['error'][$key]; - } - - return $default; - } - - /** - * Returns the HTTP status code - * - * @return int - */ - public function getHttpStatusCode() - { - return $this->response->getHttpStatusCode(); - } - - /** - * Returns the sub-error code - * - * @return int - */ - public function getSubErrorCode() - { - return $this->get('error_subcode', -1); - } - - /** - * Returns the error type - * - * @return string - */ - public function getErrorType() - { - return $this->get('type', ''); - } - - /** - * Returns the raw response used to create the exception. - * - * @return string - */ - public function getRawResponse() - { - return $this->response->getBody(); - } - - /** - * Returns the decoded response used to create the exception. - * - * @return array - */ - public function getResponseData() - { - return $this->responseData; - } - - /** - * Returns the response entity used to create the exception. - * - * @return FacebookResponse - */ - public function getResponse() - { - return $this->response; - } -} diff --git a/mayor-orig/www/include/share/facebook/Exceptions/FacebookResumableUploadException.php b/mayor-orig/www/include/share/facebook/Exceptions/FacebookResumableUploadException.php deleted file mode 100644 index 6f470662..00000000 --- a/mayor-orig/www/include/share/facebook/Exceptions/FacebookResumableUploadException.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Exceptions; - -/** - * Class FacebookResumableUploadException - * - * @package Facebook - */ -class FacebookResumableUploadException extends FacebookSDKException -{ -} diff --git a/mayor-orig/www/include/share/facebook/Exceptions/FacebookSDKException.php b/mayor-orig/www/include/share/facebook/Exceptions/FacebookSDKException.php deleted file mode 100644 index d8bef1ab..00000000 --- a/mayor-orig/www/include/share/facebook/Exceptions/FacebookSDKException.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Exceptions; - -/** - * Class FacebookSDKException - * - * @package Facebook - */ -class FacebookSDKException extends \Exception -{ -} diff --git a/mayor-orig/www/include/share/facebook/Exceptions/FacebookServerException.php b/mayor-orig/www/include/share/facebook/Exceptions/FacebookServerException.php deleted file mode 100644 index 5e0b625c..00000000 --- a/mayor-orig/www/include/share/facebook/Exceptions/FacebookServerException.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Exceptions; - -/** - * Class FacebookServerException - * - * @package Facebook - */ -class FacebookServerException extends FacebookSDKException -{ -} diff --git a/mayor-orig/www/include/share/facebook/Exceptions/FacebookThrottleException.php b/mayor-orig/www/include/share/facebook/Exceptions/FacebookThrottleException.php deleted file mode 100644 index 47fec0ea..00000000 --- a/mayor-orig/www/include/share/facebook/Exceptions/FacebookThrottleException.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Exceptions; - -/** - * Class FacebookThrottleException - * - * @package Facebook - */ -class FacebookThrottleException extends FacebookSDKException -{ -} diff --git a/mayor-orig/www/include/share/facebook/Facebook.php b/mayor-orig/www/include/share/facebook/Facebook.php deleted file mode 100644 index 2e789ca2..00000000 --- a/mayor-orig/www/include/share/facebook/Facebook.php +++ /dev/null @@ -1,635 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook; - -use Facebook\Authentication\AccessToken; -use Facebook\Authentication\OAuth2Client; -use Facebook\FileUpload\FacebookFile; -use Facebook\FileUpload\FacebookResumableUploader; -use Facebook\FileUpload\FacebookTransferChunk; -use Facebook\FileUpload\FacebookVideo; -use Facebook\GraphNodes\GraphEdge; -use Facebook\Url\UrlDetectionInterface; -use Facebook\Url\FacebookUrlDetectionHandler; -use Facebook\PseudoRandomString\PseudoRandomStringGeneratorFactory; -use Facebook\PseudoRandomString\PseudoRandomStringGeneratorInterface; -use Facebook\HttpClients\HttpClientsFactory; -use Facebook\PersistentData\PersistentDataFactory; -use Facebook\PersistentData\PersistentDataInterface; -use Facebook\Helpers\FacebookCanvasHelper; -use Facebook\Helpers\FacebookJavaScriptHelper; -use Facebook\Helpers\FacebookPageTabHelper; -use Facebook\Helpers\FacebookRedirectLoginHelper; -use Facebook\Exceptions\FacebookSDKException; - -/** - * Class Facebook - * - * @package Facebook - */ -class Facebook -{ - /** - * @const string Version number of the Facebook PHP SDK. - */ - const VERSION = '5.6.3'; - - /** - * @const string Default Graph API version for requests. - */ - const DEFAULT_GRAPH_VERSION = 'v2.10'; - - /** - * @const string The name of the environment variable that contains the app ID. - */ - const APP_ID_ENV_NAME = 'FACEBOOK_APP_ID'; - - /** - * @const string The name of the environment variable that contains the app secret. - */ - const APP_SECRET_ENV_NAME = 'FACEBOOK_APP_SECRET'; - - /** - * @var FacebookApp The FacebookApp entity. - */ - protected $app; - - /** - * @var FacebookClient The Facebook client service. - */ - protected $client; - - /** - * @var OAuth2Client The OAuth 2.0 client service. - */ - protected $oAuth2Client; - - /** - * @var UrlDetectionInterface|null The URL detection handler. - */ - protected $urlDetectionHandler; - - /** - * @var PseudoRandomStringGeneratorInterface|null The cryptographically secure pseudo-random string generator. - */ - protected $pseudoRandomStringGenerator; - - /** - * @var AccessToken|null The default access token to use with requests. - */ - protected $defaultAccessToken; - - /** - * @var string|null The default Graph version we want to use. - */ - protected $defaultGraphVersion; - - /** - * @var PersistentDataInterface|null The persistent data handler. - */ - protected $persistentDataHandler; - - /** - * @var FacebookResponse|FacebookBatchResponse|null Stores the last request made to Graph. - */ - protected $lastResponse; - - /** - * Instantiates a new Facebook super-class object. - * - * @param array $config - * - * @throws FacebookSDKException - */ - public function __construct(array $config = []) - { - $config = array_merge([ - 'app_id' => getenv(static::APP_ID_ENV_NAME), - 'app_secret' => getenv(static::APP_SECRET_ENV_NAME), - 'default_graph_version' => static::DEFAULT_GRAPH_VERSION, - 'enable_beta_mode' => false, - 'http_client_handler' => null, - 'persistent_data_handler' => null, - 'pseudo_random_string_generator' => null, - 'url_detection_handler' => null, - ], $config); - - if (!$config['app_id']) { - throw new FacebookSDKException('Required "app_id" key not supplied in config and could not find fallback environment variable "' . static::APP_ID_ENV_NAME . '"'); - } - if (!$config['app_secret']) { - throw new FacebookSDKException('Required "app_secret" key not supplied in config and could not find fallback environment variable "' . static::APP_SECRET_ENV_NAME . '"'); - } - - $this->app = new FacebookApp($config['app_id'], $config['app_secret']); - $this->client = new FacebookClient( - HttpClientsFactory::createHttpClient($config['http_client_handler']), - $config['enable_beta_mode'] - ); - $this->pseudoRandomStringGenerator = PseudoRandomStringGeneratorFactory::createPseudoRandomStringGenerator( - $config['pseudo_random_string_generator'] - ); - $this->setUrlDetectionHandler($config['url_detection_handler'] ?: new FacebookUrlDetectionHandler()); - $this->persistentDataHandler = PersistentDataFactory::createPersistentDataHandler( - $config['persistent_data_handler'] - ); - - if (isset($config['default_access_token'])) { - $this->setDefaultAccessToken($config['default_access_token']); - } - - // @todo v6: Throw an InvalidArgumentException if "default_graph_version" is not set - $this->defaultGraphVersion = $config['default_graph_version']; - } - - /** - * Returns the FacebookApp entity. - * - * @return FacebookApp - */ - public function getApp() - { - return $this->app; - } - - /** - * Returns the FacebookClient service. - * - * @return FacebookClient - */ - public function getClient() - { - return $this->client; - } - - /** - * Returns the OAuth 2.0 client service. - * - * @return OAuth2Client - */ - public function getOAuth2Client() - { - if (!$this->oAuth2Client instanceof OAuth2Client) { - $app = $this->getApp(); - $client = $this->getClient(); - $this->oAuth2Client = new OAuth2Client($app, $client, $this->defaultGraphVersion); - } - - return $this->oAuth2Client; - } - - /** - * Returns the last response returned from Graph. - * - * @return FacebookResponse|FacebookBatchResponse|null - */ - public function getLastResponse() - { - return $this->lastResponse; - } - - /** - * Returns the URL detection handler. - * - * @return UrlDetectionInterface - */ - public function getUrlDetectionHandler() - { - return $this->urlDetectionHandler; - } - - /** - * Changes the URL detection handler. - * - * @param UrlDetectionInterface $urlDetectionHandler - */ - private function setUrlDetectionHandler(UrlDetectionInterface $urlDetectionHandler) - { - $this->urlDetectionHandler = $urlDetectionHandler; - } - - /** - * Returns the default AccessToken entity. - * - * @return AccessToken|null - */ - public function getDefaultAccessToken() - { - return $this->defaultAccessToken; - } - - /** - * Sets the default access token to use with requests. - * - * @param AccessToken|string $accessToken The access token to save. - * - * @throws \InvalidArgumentException - */ - public function setDefaultAccessToken($accessToken) - { - if (is_string($accessToken)) { - $this->defaultAccessToken = new AccessToken($accessToken); - - return; - } - - if ($accessToken instanceof AccessToken) { - $this->defaultAccessToken = $accessToken; - - return; - } - - throw new \InvalidArgumentException('The default access token must be of type "string" or Facebook\AccessToken'); - } - - /** - * Returns the default Graph version. - * - * @return string - */ - public function getDefaultGraphVersion() - { - return $this->defaultGraphVersion; - } - - /** - * Returns the redirect login helper. - * - * @return FacebookRedirectLoginHelper - */ - public function getRedirectLoginHelper() - { - return new FacebookRedirectLoginHelper( - $this->getOAuth2Client(), - $this->persistentDataHandler, - $this->urlDetectionHandler, - $this->pseudoRandomStringGenerator - ); - } - - /** - * Returns the JavaScript helper. - * - * @return FacebookJavaScriptHelper - */ - public function getJavaScriptHelper() - { - return new FacebookJavaScriptHelper($this->app, $this->client, $this->defaultGraphVersion); - } - - /** - * Returns the canvas helper. - * - * @return FacebookCanvasHelper - */ - public function getCanvasHelper() - { - return new FacebookCanvasHelper($this->app, $this->client, $this->defaultGraphVersion); - } - - /** - * Returns the page tab helper. - * - * @return FacebookPageTabHelper - */ - public function getPageTabHelper() - { - return new FacebookPageTabHelper($this->app, $this->client, $this->defaultGraphVersion); - } - - /** - * Sends a GET request to Graph and returns the result. - * - * @param string $endpoint - * @param AccessToken|string|null $accessToken - * @param string|null $eTag - * @param string|null $graphVersion - * - * @return FacebookResponse - * - * @throws FacebookSDKException - */ - public function get($endpoint, $accessToken = null, $eTag = null, $graphVersion = null) - { - return $this->sendRequest( - 'GET', - $endpoint, - $params = [], - $accessToken, - $eTag, - $graphVersion - ); - } - - /** - * Sends a POST request to Graph and returns the result. - * - * @param string $endpoint - * @param array $params - * @param AccessToken|string|null $accessToken - * @param string|null $eTag - * @param string|null $graphVersion - * - * @return FacebookResponse - * - * @throws FacebookSDKException - */ - public function post($endpoint, array $params = [], $accessToken = null, $eTag = null, $graphVersion = null) - { - return $this->sendRequest( - 'POST', - $endpoint, - $params, - $accessToken, - $eTag, - $graphVersion - ); - } - - /** - * Sends a DELETE request to Graph and returns the result. - * - * @param string $endpoint - * @param array $params - * @param AccessToken|string|null $accessToken - * @param string|null $eTag - * @param string|null $graphVersion - * - * @return FacebookResponse - * - * @throws FacebookSDKException - */ - public function delete($endpoint, array $params = [], $accessToken = null, $eTag = null, $graphVersion = null) - { - return $this->sendRequest( - 'DELETE', - $endpoint, - $params, - $accessToken, - $eTag, - $graphVersion - ); - } - - /** - * Sends a request to Graph for the next page of results. - * - * @param GraphEdge $graphEdge The GraphEdge to paginate over. - * - * @return GraphEdge|null - * - * @throws FacebookSDKException - */ - public function next(GraphEdge $graphEdge) - { - return $this->getPaginationResults($graphEdge, 'next'); - } - - /** - * Sends a request to Graph for the previous page of results. - * - * @param GraphEdge $graphEdge The GraphEdge to paginate over. - * - * @return GraphEdge|null - * - * @throws FacebookSDKException - */ - public function previous(GraphEdge $graphEdge) - { - return $this->getPaginationResults($graphEdge, 'previous'); - } - - /** - * Sends a request to Graph for the next page of results. - * - * @param GraphEdge $graphEdge The GraphEdge to paginate over. - * @param string $direction The direction of the pagination: next|previous. - * - * @return GraphEdge|null - * - * @throws FacebookSDKException - */ - public function getPaginationResults(GraphEdge $graphEdge, $direction) - { - $paginationRequest = $graphEdge->getPaginationRequest($direction); - if (!$paginationRequest) { - return null; - } - - $this->lastResponse = $this->client->sendRequest($paginationRequest); - - // Keep the same GraphNode subclass - $subClassName = $graphEdge->getSubClassName(); - $graphEdge = $this->lastResponse->getGraphEdge($subClassName, false); - - return count($graphEdge) > 0 ? $graphEdge : null; - } - - /** - * Sends a request to Graph and returns the result. - * - * @param string $method - * @param string $endpoint - * @param array $params - * @param AccessToken|string|null $accessToken - * @param string|null $eTag - * @param string|null $graphVersion - * - * @return FacebookResponse - * - * @throws FacebookSDKException - */ - public function sendRequest($method, $endpoint, array $params = [], $accessToken = null, $eTag = null, $graphVersion = null) - { - $accessToken = $accessToken ?: $this->defaultAccessToken; - $graphVersion = $graphVersion ?: $this->defaultGraphVersion; - $request = $this->request($method, $endpoint, $params, $accessToken, $eTag, $graphVersion); - - return $this->lastResponse = $this->client->sendRequest($request); - } - - /** - * Sends a batched request to Graph and returns the result. - * - * @param array $requests - * @param AccessToken|string|null $accessToken - * @param string|null $graphVersion - * - * @return FacebookBatchResponse - * - * @throws FacebookSDKException - */ - public function sendBatchRequest(array $requests, $accessToken = null, $graphVersion = null) - { - $accessToken = $accessToken ?: $this->defaultAccessToken; - $graphVersion = $graphVersion ?: $this->defaultGraphVersion; - $batchRequest = new FacebookBatchRequest( - $this->app, - $requests, - $accessToken, - $graphVersion - ); - - return $this->lastResponse = $this->client->sendBatchRequest($batchRequest); - } - - /** - * Instantiates an empty FacebookBatchRequest entity. - * - * @param AccessToken|string|null $accessToken The top-level access token. Requests with no access token - * will fallback to this. - * @param string|null $graphVersion The Graph API version to use. - * @return FacebookBatchRequest - */ - public function newBatchRequest($accessToken = null, $graphVersion = null) - { - $accessToken = $accessToken ?: $this->defaultAccessToken; - $graphVersion = $graphVersion ?: $this->defaultGraphVersion; - - return new FacebookBatchRequest( - $this->app, - [], - $accessToken, - $graphVersion - ); - } - - /** - * Instantiates a new FacebookRequest entity. - * - * @param string $method - * @param string $endpoint - * @param array $params - * @param AccessToken|string|null $accessToken - * @param string|null $eTag - * @param string|null $graphVersion - * - * @return FacebookRequest - * - * @throws FacebookSDKException - */ - public function request($method, $endpoint, array $params = [], $accessToken = null, $eTag = null, $graphVersion = null) - { - $accessToken = $accessToken ?: $this->defaultAccessToken; - $graphVersion = $graphVersion ?: $this->defaultGraphVersion; - - return new FacebookRequest( - $this->app, - $accessToken, - $method, - $endpoint, - $params, - $eTag, - $graphVersion - ); - } - - /** - * Factory to create FacebookFile's. - * - * @param string $pathToFile - * - * @return FacebookFile - * - * @throws FacebookSDKException - */ - public function fileToUpload($pathToFile) - { - return new FacebookFile($pathToFile); - } - - /** - * Factory to create FacebookVideo's. - * - * @param string $pathToFile - * - * @return FacebookVideo - * - * @throws FacebookSDKException - */ - public function videoToUpload($pathToFile) - { - return new FacebookVideo($pathToFile); - } - - /** - * Upload a video in chunks. - * - * @param int $target The id of the target node before the /videos edge. - * @param string $pathToFile The full path to the file. - * @param array $metadata The metadata associated with the video file. - * @param string|null $accessToken The access token. - * @param int $maxTransferTries The max times to retry a failed upload chunk. - * @param string|null $graphVersion The Graph API version to use. - * - * @return array - * - * @throws FacebookSDKException - */ - public function uploadVideo($target, $pathToFile, $metadata = [], $accessToken = null, $maxTransferTries = 5, $graphVersion = null) - { - $accessToken = $accessToken ?: $this->defaultAccessToken; - $graphVersion = $graphVersion ?: $this->defaultGraphVersion; - - $uploader = new FacebookResumableUploader($this->app, $this->client, $accessToken, $graphVersion); - $endpoint = '/'.$target.'/videos'; - $file = $this->videoToUpload($pathToFile); - $chunk = $uploader->start($endpoint, $file); - - do { - $chunk = $this->maxTriesTransfer($uploader, $endpoint, $chunk, $maxTransferTries); - } while (!$chunk->isLastChunk()); - - return [ - 'video_id' => $chunk->getVideoId(), - 'success' => $uploader->finish($endpoint, $chunk->getUploadSessionId(), $metadata), - ]; - } - - /** - * Attempts to upload a chunk of a file in $retryCountdown tries. - * - * @param FacebookResumableUploader $uploader - * @param string $endpoint - * @param FacebookTransferChunk $chunk - * @param int $retryCountdown - * - * @return FacebookTransferChunk - * - * @throws FacebookSDKException - */ - private function maxTriesTransfer(FacebookResumableUploader $uploader, $endpoint, FacebookTransferChunk $chunk, $retryCountdown) - { - $newChunk = $uploader->transfer($endpoint, $chunk, $retryCountdown < 1); - - if ($newChunk !== $chunk) { - return $newChunk; - } - - $retryCountdown--; - - // If transfer() returned the same chunk entity, the transfer failed but is resumable. - return $this->maxTriesTransfer($uploader, $endpoint, $chunk, $retryCountdown); - } -} diff --git a/mayor-orig/www/include/share/facebook/FacebookApp.php b/mayor-orig/www/include/share/facebook/FacebookApp.php deleted file mode 100644 index 804c9bb5..00000000 --- a/mayor-orig/www/include/share/facebook/FacebookApp.php +++ /dev/null @@ -1,110 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook; - -use Facebook\Authentication\AccessToken; -use Facebook\Exceptions\FacebookSDKException; - -class FacebookApp implements \Serializable -{ - /** - * @var string The app ID. - */ - protected $id; - - /** - * @var string The app secret. - */ - protected $secret; - - /** - * @param string $id - * @param string $secret - * - * @throws FacebookSDKException - */ - public function __construct($id, $secret) - { - if (!is_string($id) - // Keeping this for BC. Integers greater than PHP_INT_MAX will make is_int() return false - && !is_int($id)) { - throw new FacebookSDKException('The "app_id" must be formatted as a string since many app ID\'s are greater than PHP_INT_MAX on some systems.'); - } - // We cast as a string in case a valid int was set on a 64-bit system and this is unserialised on a 32-bit system - $this->id = (string) $id; - $this->secret = $secret; - } - - /** - * Returns the app ID. - * - * @return string - */ - public function getId() - { - return $this->id; - } - - /** - * Returns the app secret. - * - * @return string - */ - public function getSecret() - { - return $this->secret; - } - - /** - * Returns an app access token. - * - * @return AccessToken - */ - public function getAccessToken() - { - return new AccessToken($this->id . '|' . $this->secret); - } - - /** - * Serializes the FacebookApp entity as a string. - * - * @return string - */ - public function serialize() - { - return implode('|', [$this->id, $this->secret]); - } - - /** - * Unserializes a string as a FacebookApp entity. - * - * @param string $serialized - */ - public function unserialize($serialized) - { - list($id, $secret) = explode('|', $serialized); - - $this->__construct($id, $secret); - } -} diff --git a/mayor-orig/www/include/share/facebook/FacebookBatchRequest.php b/mayor-orig/www/include/share/facebook/FacebookBatchRequest.php deleted file mode 100644 index 9297e77d..00000000 --- a/mayor-orig/www/include/share/facebook/FacebookBatchRequest.php +++ /dev/null @@ -1,322 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook; - -use ArrayIterator; -use IteratorAggregate; -use ArrayAccess; -use Facebook\Authentication\AccessToken; -use Facebook\Exceptions\FacebookSDKException; - -/** - * Class BatchRequest - * - * @package Facebook - */ -class FacebookBatchRequest extends FacebookRequest implements IteratorAggregate, ArrayAccess -{ - /** - * @var array An array of FacebookRequest entities to send. - */ - protected $requests = []; - - /** - * @var array An array of files to upload. - */ - protected $attachedFiles; - - /** - * Creates a new Request entity. - * - * @param FacebookApp|null $app - * @param array $requests - * @param AccessToken|string|null $accessToken - * @param string|null $graphVersion - */ - public function __construct(FacebookApp $app = null, array $requests = [], $accessToken = null, $graphVersion = null) - { - parent::__construct($app, $accessToken, 'POST', '', [], null, $graphVersion); - - $this->add($requests); - } - - /** - * Adds a new request to the array. - * - * @param FacebookRequest|array $request - * @param string|null|array $options Array of batch request options e.g. 'name', 'omit_response_on_success'. - * If a string is given, it is the value of the 'name' option. - * - * @return FacebookBatchRequest - * - * @throws \InvalidArgumentException - */ - public function add($request, $options = null) - { - if (is_array($request)) { - foreach ($request as $key => $req) { - $this->add($req, $key); - } - - return $this; - } - - if (!$request instanceof FacebookRequest) { - throw new \InvalidArgumentException('Argument for add() must be of type array or FacebookRequest.'); - } - - if (null === $options) { - $options = []; - } elseif (!is_array($options)) { - $options = ['name' => $options]; - } - - $this->addFallbackDefaults($request); - - // File uploads - $attachedFiles = $this->extractFileAttachments($request); - - $name = isset($options['name']) ? $options['name'] : null; - - unset($options['name']); - - $requestToAdd = [ - 'name' => $name, - 'request' => $request, - 'options' => $options, - 'attached_files' => $attachedFiles, - ]; - - $this->requests[] = $requestToAdd; - - return $this; - } - - /** - * Ensures that the FacebookApp and access token fall back when missing. - * - * @param FacebookRequest $request - * - * @throws FacebookSDKException - */ - public function addFallbackDefaults(FacebookRequest $request) - { - if (!$request->getApp()) { - $app = $this->getApp(); - if (!$app) { - throw new FacebookSDKException('Missing FacebookApp on FacebookRequest and no fallback detected on FacebookBatchRequest.'); - } - $request->setApp($app); - } - - if (!$request->getAccessToken()) { - $accessToken = $this->getAccessToken(); - if (!$accessToken) { - throw new FacebookSDKException('Missing access token on FacebookRequest and no fallback detected on FacebookBatchRequest.'); - } - $request->setAccessToken($accessToken); - } - } - - /** - * Extracts the files from a request. - * - * @param FacebookRequest $request - * - * @return string|null - * - * @throws FacebookSDKException - */ - public function extractFileAttachments(FacebookRequest $request) - { - if (!$request->containsFileUploads()) { - return null; - } - - $files = $request->getFiles(); - $fileNames = []; - foreach ($files as $file) { - $fileName = uniqid(); - $this->addFile($fileName, $file); - $fileNames[] = $fileName; - } - - $request->resetFiles(); - - // @TODO Does Graph support multiple uploads on one endpoint? - return implode(',', $fileNames); - } - - /** - * Return the FacebookRequest entities. - * - * @return array - */ - public function getRequests() - { - return $this->requests; - } - - /** - * Prepares the requests to be sent as a batch request. - */ - public function prepareRequestsForBatch() - { - $this->validateBatchRequestCount(); - - $params = [ - 'batch' => $this->convertRequestsToJson(), - 'include_headers' => true, - ]; - $this->setParams($params); - } - - /** - * Converts the requests into a JSON(P) string. - * - * @return string - */ - public function convertRequestsToJson() - { - $requests = []; - foreach ($this->requests as $request) { - $options = []; - - if (null !== $request['name']) { - $options['name'] = $request['name']; - } - - $options += $request['options']; - - $requests[] = $this->requestEntityToBatchArray($request['request'], $options, $request['attached_files']); - } - - return json_encode($requests); - } - - /** - * Validate the request count before sending them as a batch. - * - * @throws FacebookSDKException - */ - public function validateBatchRequestCount() - { - $batchCount = count($this->requests); - if ($batchCount === 0) { - throw new FacebookSDKException('There are no batch requests to send.'); - } elseif ($batchCount > 50) { - // Per: https://developers.facebook.com/docs/graph-api/making-multiple-requests#limits - throw new FacebookSDKException('You cannot send more than 50 batch requests at a time.'); - } - } - - /** - * Converts a Request entity into an array that is batch-friendly. - * - * @param FacebookRequest $request The request entity to convert. - * @param string|null|array $options Array of batch request options e.g. 'name', 'omit_response_on_success'. - * If a string is given, it is the value of the 'name' option. - * @param string|null $attachedFiles Names of files associated with the request. - * - * @return array - */ - public function requestEntityToBatchArray(FacebookRequest $request, $options = null, $attachedFiles = null) - { - - if (null === $options) { - $options = []; - } elseif (!is_array($options)) { - $options = ['name' => $options]; - } - - $compiledHeaders = []; - $headers = $request->getHeaders(); - foreach ($headers as $name => $value) { - $compiledHeaders[] = $name . ': ' . $value; - } - - $batch = [ - 'headers' => $compiledHeaders, - 'method' => $request->getMethod(), - 'relative_url' => $request->getUrl(), - ]; - - // Since file uploads are moved to the root request of a batch request, - // the child requests will always be URL-encoded. - $body = $request->getUrlEncodedBody()->getBody(); - if ($body) { - $batch['body'] = $body; - } - - $batch += $options; - - if (null !== $attachedFiles) { - $batch['attached_files'] = $attachedFiles; - } - - return $batch; - } - - /** - * Get an iterator for the items. - * - * @return ArrayIterator - */ - public function getIterator() - { - return new ArrayIterator($this->requests); - } - - /** - * @inheritdoc - */ - public function offsetSet($offset, $value) - { - $this->add($value, $offset); - } - - /** - * @inheritdoc - */ - public function offsetExists($offset) - { - return isset($this->requests[$offset]); - } - - /** - * @inheritdoc - */ - public function offsetUnset($offset) - { - unset($this->requests[$offset]); - } - - /** - * @inheritdoc - */ - public function offsetGet($offset) - { - return isset($this->requests[$offset]) ? $this->requests[$offset] : null; - } -} diff --git a/mayor-orig/www/include/share/facebook/FacebookBatchResponse.php b/mayor-orig/www/include/share/facebook/FacebookBatchResponse.php deleted file mode 100644 index 8e1464c9..00000000 --- a/mayor-orig/www/include/share/facebook/FacebookBatchResponse.php +++ /dev/null @@ -1,174 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook; - -use ArrayIterator; -use IteratorAggregate; -use ArrayAccess; - -/** - * Class FacebookBatchResponse - * - * @package Facebook - */ -class FacebookBatchResponse extends FacebookResponse implements IteratorAggregate, ArrayAccess -{ - /** - * @var FacebookBatchRequest The original entity that made the batch request. - */ - protected $batchRequest; - - /** - * @var array An array of FacebookResponse entities. - */ - protected $responses = []; - - /** - * Creates a new Response entity. - * - * @param FacebookBatchRequest $batchRequest - * @param FacebookResponse $response - */ - public function __construct(FacebookBatchRequest $batchRequest, FacebookResponse $response) - { - $this->batchRequest = $batchRequest; - - $request = $response->getRequest(); - $body = $response->getBody(); - $httpStatusCode = $response->getHttpStatusCode(); - $headers = $response->getHeaders(); - parent::__construct($request, $body, $httpStatusCode, $headers); - - $responses = $response->getDecodedBody(); - $this->setResponses($responses); - } - - /** - * Returns an array of FacebookResponse entities. - * - * @return array - */ - public function getResponses() - { - return $this->responses; - } - - /** - * The main batch response will be an array of requests so - * we need to iterate over all the responses. - * - * @param array $responses - */ - public function setResponses(array $responses) - { - $this->responses = []; - - foreach ($responses as $key => $graphResponse) { - $this->addResponse($key, $graphResponse); - } - } - - /** - * Add a response to the list. - * - * @param int $key - * @param array|null $response - */ - public function addResponse($key, $response) - { - $originalRequestName = isset($this->batchRequest[$key]['name']) ? $this->batchRequest[$key]['name'] : $key; - $originalRequest = isset($this->batchRequest[$key]['request']) ? $this->batchRequest[$key]['request'] : null; - - $httpResponseBody = isset($response['body']) ? $response['body'] : null; - $httpResponseCode = isset($response['code']) ? $response['code'] : null; - // @TODO With PHP 5.5 support, this becomes array_column($response['headers'], 'value', 'name') - $httpResponseHeaders = isset($response['headers']) ? $this->normalizeBatchHeaders($response['headers']) : []; - - $this->responses[$originalRequestName] = new FacebookResponse( - $originalRequest, - $httpResponseBody, - $httpResponseCode, - $httpResponseHeaders - ); - } - - /** - * @inheritdoc - */ - public function getIterator() - { - return new ArrayIterator($this->responses); - } - - /** - * @inheritdoc - */ - public function offsetSet($offset, $value) - { - $this->addResponse($offset, $value); - } - - /** - * @inheritdoc - */ - public function offsetExists($offset) - { - return isset($this->responses[$offset]); - } - - /** - * @inheritdoc - */ - public function offsetUnset($offset) - { - unset($this->responses[$offset]); - } - - /** - * @inheritdoc - */ - public function offsetGet($offset) - { - return isset($this->responses[$offset]) ? $this->responses[$offset] : null; - } - - /** - * Converts the batch header array into a standard format. - * @TODO replace with array_column() when PHP 5.5 is supported. - * - * @param array $batchHeaders - * - * @return array - */ - private function normalizeBatchHeaders(array $batchHeaders) - { - $headers = []; - - foreach ($batchHeaders as $header) { - $headers[$header['name']] = $header['value']; - } - - return $headers; - } -} diff --git a/mayor-orig/www/include/share/facebook/FacebookClient.php b/mayor-orig/www/include/share/facebook/FacebookClient.php deleted file mode 100644 index dbf75923..00000000 --- a/mayor-orig/www/include/share/facebook/FacebookClient.php +++ /dev/null @@ -1,250 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook; - -use Facebook\HttpClients\FacebookHttpClientInterface; -use Facebook\HttpClients\FacebookCurlHttpClient; -use Facebook\HttpClients\FacebookStreamHttpClient; -use Facebook\Exceptions\FacebookSDKException; - -/** - * Class FacebookClient - * - * @package Facebook - */ -class FacebookClient -{ - /** - * @const string Production Graph API URL. - */ - const BASE_GRAPH_URL = 'https://graph.facebook.com'; - - /** - * @const string Graph API URL for video uploads. - */ - const BASE_GRAPH_VIDEO_URL = 'https://graph-video.facebook.com'; - - /** - * @const string Beta Graph API URL. - */ - const BASE_GRAPH_URL_BETA = 'https://graph.beta.facebook.com'; - - /** - * @const string Beta Graph API URL for video uploads. - */ - const BASE_GRAPH_VIDEO_URL_BETA = 'https://graph-video.beta.facebook.com'; - - /** - * @const int The timeout in seconds for a normal request. - */ - const DEFAULT_REQUEST_TIMEOUT = 60; - - /** - * @const int The timeout in seconds for a request that contains file uploads. - */ - const DEFAULT_FILE_UPLOAD_REQUEST_TIMEOUT = 3600; - - /** - * @const int The timeout in seconds for a request that contains video uploads. - */ - const DEFAULT_VIDEO_UPLOAD_REQUEST_TIMEOUT = 7200; - - /** - * @var bool Toggle to use Graph beta url. - */ - protected $enableBetaMode = false; - - /** - * @var FacebookHttpClientInterface HTTP client handler. - */ - protected $httpClientHandler; - - /** - * @var int The number of calls that have been made to Graph. - */ - public static $requestCount = 0; - - /** - * Instantiates a new FacebookClient object. - * - * @param FacebookHttpClientInterface|null $httpClientHandler - * @param boolean $enableBeta - */ - public function __construct(FacebookHttpClientInterface $httpClientHandler = null, $enableBeta = false) - { - $this->httpClientHandler = $httpClientHandler ?: $this->detectHttpClientHandler(); - $this->enableBetaMode = $enableBeta; - } - - /** - * Sets the HTTP client handler. - * - * @param FacebookHttpClientInterface $httpClientHandler - */ - public function setHttpClientHandler(FacebookHttpClientInterface $httpClientHandler) - { - $this->httpClientHandler = $httpClientHandler; - } - - /** - * Returns the HTTP client handler. - * - * @return FacebookHttpClientInterface - */ - public function getHttpClientHandler() - { - return $this->httpClientHandler; - } - - /** - * Detects which HTTP client handler to use. - * - * @return FacebookHttpClientInterface - */ - public function detectHttpClientHandler() - { - return extension_loaded('curl') ? new FacebookCurlHttpClient() : new FacebookStreamHttpClient(); - } - - /** - * Toggle beta mode. - * - * @param boolean $betaMode - */ - public function enableBetaMode($betaMode = true) - { - $this->enableBetaMode = $betaMode; - } - - /** - * Returns the base Graph URL. - * - * @param boolean $postToVideoUrl Post to the video API if videos are being uploaded. - * - * @return string - */ - public function getBaseGraphUrl($postToVideoUrl = false) - { - if ($postToVideoUrl) { - return $this->enableBetaMode ? static::BASE_GRAPH_VIDEO_URL_BETA : static::BASE_GRAPH_VIDEO_URL; - } - - return $this->enableBetaMode ? static::BASE_GRAPH_URL_BETA : static::BASE_GRAPH_URL; - } - - /** - * Prepares the request for sending to the client handler. - * - * @param FacebookRequest $request - * - * @return array - */ - public function prepareRequestMessage(FacebookRequest $request) - { - $postToVideoUrl = $request->containsVideoUploads(); - $url = $this->getBaseGraphUrl($postToVideoUrl) . $request->getUrl(); - - // If we're sending files they should be sent as multipart/form-data - if ($request->containsFileUploads()) { - $requestBody = $request->getMultipartBody(); - $request->setHeaders([ - 'Content-Type' => 'multipart/form-data; boundary=' . $requestBody->getBoundary(), - ]); - } else { - $requestBody = $request->getUrlEncodedBody(); - $request->setHeaders([ - 'Content-Type' => 'application/x-www-form-urlencoded', - ]); - } - - return [ - $url, - $request->getMethod(), - $request->getHeaders(), - $requestBody->getBody(), - ]; - } - - /** - * Makes the request to Graph and returns the result. - * - * @param FacebookRequest $request - * - * @return FacebookResponse - * - * @throws FacebookSDKException - */ - public function sendRequest(FacebookRequest $request) - { - if (get_class($request) === 'Facebook\FacebookRequest') { - $request->validateAccessToken(); - } - - list($url, $method, $headers, $body) = $this->prepareRequestMessage($request); - - // Since file uploads can take a while, we need to give more time for uploads - $timeOut = static::DEFAULT_REQUEST_TIMEOUT; - if ($request->containsFileUploads()) { - $timeOut = static::DEFAULT_FILE_UPLOAD_REQUEST_TIMEOUT; - } elseif ($request->containsVideoUploads()) { - $timeOut = static::DEFAULT_VIDEO_UPLOAD_REQUEST_TIMEOUT; - } - - // Should throw `FacebookSDKException` exception on HTTP client error. - // Don't catch to allow it to bubble up. - $rawResponse = $this->httpClientHandler->send($url, $method, $body, $headers, $timeOut); - - static::$requestCount++; - - $returnResponse = new FacebookResponse( - $request, - $rawResponse->getBody(), - $rawResponse->getHttpResponseCode(), - $rawResponse->getHeaders() - ); - - if ($returnResponse->isError()) { - throw $returnResponse->getThrownException(); - } - - return $returnResponse; - } - - /** - * Makes a batched request to Graph and returns the result. - * - * @param FacebookBatchRequest $request - * - * @return FacebookBatchResponse - * - * @throws FacebookSDKException - */ - public function sendBatchRequest(FacebookBatchRequest $request) - { - $request->prepareRequestsForBatch(); - $facebookResponse = $this->sendRequest($request); - - return new FacebookBatchResponse($request, $facebookResponse); - } -} diff --git a/mayor-orig/www/include/share/facebook/FacebookRequest.php b/mayor-orig/www/include/share/facebook/FacebookRequest.php deleted file mode 100644 index 2b100899..00000000 --- a/mayor-orig/www/include/share/facebook/FacebookRequest.php +++ /dev/null @@ -1,534 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook; - -use Facebook\Authentication\AccessToken; -use Facebook\Url\FacebookUrlManipulator; -use Facebook\FileUpload\FacebookFile; -use Facebook\FileUpload\FacebookVideo; -use Facebook\Http\RequestBodyMultipart; -use Facebook\Http\RequestBodyUrlEncoded; -use Facebook\Exceptions\FacebookSDKException; - -/** - * Class Request - * - * @package Facebook - */ -class FacebookRequest -{ - /** - * @var FacebookApp The Facebook app entity. - */ - protected $app; - - /** - * @var string|null The access token to use for this request. - */ - protected $accessToken; - - /** - * @var string The HTTP method for this request. - */ - protected $method; - - /** - * @var string The Graph endpoint for this request. - */ - protected $endpoint; - - /** - * @var array The headers to send with this request. - */ - protected $headers = []; - - /** - * @var array The parameters to send with this request. - */ - protected $params = []; - - /** - * @var array The files to send with this request. - */ - protected $files = []; - - /** - * @var string ETag to send with this request. - */ - protected $eTag; - - /** - * @var string Graph version to use for this request. - */ - protected $graphVersion; - - /** - * Creates a new Request entity. - * - * @param FacebookApp|null $app - * @param AccessToken|string|null $accessToken - * @param string|null $method - * @param string|null $endpoint - * @param array|null $params - * @param string|null $eTag - * @param string|null $graphVersion - */ - public function __construct(FacebookApp $app = null, $accessToken = null, $method = null, $endpoint = null, array $params = [], $eTag = null, $graphVersion = null) - { - $this->setApp($app); - $this->setAccessToken($accessToken); - $this->setMethod($method); - $this->setEndpoint($endpoint); - $this->setParams($params); - $this->setETag($eTag); - $this->graphVersion = $graphVersion ?: Facebook::DEFAULT_GRAPH_VERSION; - } - - /** - * Set the access token for this request. - * - * @param AccessToken|string|null - * - * @return FacebookRequest - */ - public function setAccessToken($accessToken) - { - $this->accessToken = $accessToken; - if ($accessToken instanceof AccessToken) { - $this->accessToken = $accessToken->getValue(); - } - - return $this; - } - - /** - * Sets the access token with one harvested from a URL or POST params. - * - * @param string $accessToken The access token. - * - * @return FacebookRequest - * - * @throws FacebookSDKException - */ - public function setAccessTokenFromParams($accessToken) - { - $existingAccessToken = $this->getAccessToken(); - if (!$existingAccessToken) { - $this->setAccessToken($accessToken); - } elseif ($accessToken !== $existingAccessToken) { - throw new FacebookSDKException('Access token mismatch. The access token provided in the FacebookRequest and the one provided in the URL or POST params do not match.'); - } - - return $this; - } - - /** - * Return the access token for this request. - * - * @return string|null - */ - public function getAccessToken() - { - return $this->accessToken; - } - - /** - * Return the access token for this request as an AccessToken entity. - * - * @return AccessToken|null - */ - public function getAccessTokenEntity() - { - return $this->accessToken ? new AccessToken($this->accessToken) : null; - } - - /** - * Set the FacebookApp entity used for this request. - * - * @param FacebookApp|null $app - */ - public function setApp(FacebookApp $app = null) - { - $this->app = $app; - } - - /** - * Return the FacebookApp entity used for this request. - * - * @return FacebookApp - */ - public function getApp() - { - return $this->app; - } - - /** - * Generate an app secret proof to sign this request. - * - * @return string|null - */ - public function getAppSecretProof() - { - if (!$accessTokenEntity = $this->getAccessTokenEntity()) { - return null; - } - - return $accessTokenEntity->getAppSecretProof($this->app->getSecret()); - } - - /** - * Validate that an access token exists for this request. - * - * @throws FacebookSDKException - */ - public function validateAccessToken() - { - $accessToken = $this->getAccessToken(); - if (!$accessToken) { - throw new FacebookSDKException('You must provide an access token.'); - } - } - - /** - * Set the HTTP method for this request. - * - * @param string - */ - public function setMethod($method) - { - $this->method = strtoupper($method); - } - - /** - * Return the HTTP method for this request. - * - * @return string - */ - public function getMethod() - { - return $this->method; - } - - /** - * Validate that the HTTP method is set. - * - * @throws FacebookSDKException - */ - public function validateMethod() - { - if (!$this->method) { - throw new FacebookSDKException('HTTP method not specified.'); - } - - if (!in_array($this->method, ['GET', 'POST', 'DELETE'])) { - throw new FacebookSDKException('Invalid HTTP method specified.'); - } - } - - /** - * Set the endpoint for this request. - * - * @param string - * - * @return FacebookRequest - * - * @throws FacebookSDKException - */ - public function setEndpoint($endpoint) - { - // Harvest the access token from the endpoint to keep things in sync - $params = FacebookUrlManipulator::getParamsAsArray($endpoint); - if (isset($params['access_token'])) { - $this->setAccessTokenFromParams($params['access_token']); - } - - // Clean the token & app secret proof from the endpoint. - $filterParams = ['access_token', 'appsecret_proof']; - $this->endpoint = FacebookUrlManipulator::removeParamsFromUrl($endpoint, $filterParams); - - return $this; - } - - /** - * Return the endpoint for this request. - * - * @return string - */ - public function getEndpoint() - { - // For batch requests, this will be empty - return $this->endpoint; - } - - /** - * Generate and return the headers for this request. - * - * @return array - */ - public function getHeaders() - { - $headers = static::getDefaultHeaders(); - - if ($this->eTag) { - $headers['If-None-Match'] = $this->eTag; - } - - return array_merge($this->headers, $headers); - } - - /** - * Set the headers for this request. - * - * @param array $headers - */ - public function setHeaders(array $headers) - { - $this->headers = array_merge($this->headers, $headers); - } - - /** - * Sets the eTag value. - * - * @param string $eTag - */ - public function setETag($eTag) - { - $this->eTag = $eTag; - } - - /** - * Set the params for this request. - * - * @param array $params - * - * @return FacebookRequest - * - * @throws FacebookSDKException - */ - public function setParams(array $params = []) - { - if (isset($params['access_token'])) { - $this->setAccessTokenFromParams($params['access_token']); - } - - // Don't let these buggers slip in. - unset($params['access_token'], $params['appsecret_proof']); - - // @TODO Refactor code above with this - //$params = $this->sanitizeAuthenticationParams($params); - $params = $this->sanitizeFileParams($params); - $this->dangerouslySetParams($params); - - return $this; - } - - /** - * Set the params for this request without filtering them first. - * - * @param array $params - * - * @return FacebookRequest - */ - public function dangerouslySetParams(array $params = []) - { - $this->params = array_merge($this->params, $params); - - return $this; - } - - /** - * Iterate over the params and pull out the file uploads. - * - * @param array $params - * - * @return array - */ - public function sanitizeFileParams(array $params) - { - foreach ($params as $key => $value) { - if ($value instanceof FacebookFile) { - $this->addFile($key, $value); - unset($params[$key]); - } - } - - return $params; - } - - /** - * Add a file to be uploaded. - * - * @param string $key - * @param FacebookFile $file - */ - public function addFile($key, FacebookFile $file) - { - $this->files[$key] = $file; - } - - /** - * Removes all the files from the upload queue. - */ - public function resetFiles() - { - $this->files = []; - } - - /** - * Get the list of files to be uploaded. - * - * @return array - */ - public function getFiles() - { - return $this->files; - } - - /** - * Let's us know if there is a file upload with this request. - * - * @return boolean - */ - public function containsFileUploads() - { - return !empty($this->files); - } - - /** - * Let's us know if there is a video upload with this request. - * - * @return boolean - */ - public function containsVideoUploads() - { - foreach ($this->files as $file) { - if ($file instanceof FacebookVideo) { - return true; - } - } - - return false; - } - - /** - * Returns the body of the request as multipart/form-data. - * - * @return RequestBodyMultipart - */ - public function getMultipartBody() - { - $params = $this->getPostParams(); - - return new RequestBodyMultipart($params, $this->files); - } - - /** - * Returns the body of the request as URL-encoded. - * - * @return RequestBodyUrlEncoded - */ - public function getUrlEncodedBody() - { - $params = $this->getPostParams(); - - return new RequestBodyUrlEncoded($params); - } - - /** - * Generate and return the params for this request. - * - * @return array - */ - public function getParams() - { - $params = $this->params; - - $accessToken = $this->getAccessToken(); - if ($accessToken) { - $params['access_token'] = $accessToken; - $params['appsecret_proof'] = $this->getAppSecretProof(); - } - - return $params; - } - - /** - * Only return params on POST requests. - * - * @return array - */ - public function getPostParams() - { - if ($this->getMethod() === 'POST') { - return $this->getParams(); - } - - return []; - } - - /** - * The graph version used for this request. - * - * @return string - */ - public function getGraphVersion() - { - return $this->graphVersion; - } - - /** - * Generate and return the URL for this request. - * - * @return string - */ - public function getUrl() - { - $this->validateMethod(); - - $graphVersion = FacebookUrlManipulator::forceSlashPrefix($this->graphVersion); - $endpoint = FacebookUrlManipulator::forceSlashPrefix($this->getEndpoint()); - - $url = $graphVersion . $endpoint; - - if ($this->getMethod() !== 'POST') { - $params = $this->getParams(); - $url = FacebookUrlManipulator::appendParamsToUrl($url, $params); - } - - return $url; - } - - /** - * Return the default headers that every request should use. - * - * @return array - */ - public static function getDefaultHeaders() - { - return [ - 'User-Agent' => 'fb-php-' . Facebook::VERSION, - 'Accept-Encoding' => '*', - ]; - } -} diff --git a/mayor-orig/www/include/share/facebook/FacebookResponse.php b/mayor-orig/www/include/share/facebook/FacebookResponse.php deleted file mode 100644 index 251ca2f7..00000000 --- a/mayor-orig/www/include/share/facebook/FacebookResponse.php +++ /dev/null @@ -1,410 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook; - -use Facebook\GraphNodes\GraphNodeFactory; -use Facebook\Exceptions\FacebookResponseException; -use Facebook\Exceptions\FacebookSDKException; - -/** - * Class FacebookResponse - * - * @package Facebook - */ -class FacebookResponse -{ - /** - * @var int The HTTP status code response from Graph. - */ - protected $httpStatusCode; - - /** - * @var array The headers returned from Graph. - */ - protected $headers; - - /** - * @var string The raw body of the response from Graph. - */ - protected $body; - - /** - * @var array The decoded body of the Graph response. - */ - protected $decodedBody = []; - - /** - * @var FacebookRequest The original request that returned this response. - */ - protected $request; - - /** - * @var FacebookSDKException The exception thrown by this request. - */ - protected $thrownException; - - /** - * Creates a new Response entity. - * - * @param FacebookRequest $request - * @param string|null $body - * @param int|null $httpStatusCode - * @param array|null $headers - */ - public function __construct(FacebookRequest $request, $body = null, $httpStatusCode = null, array $headers = []) - { - $this->request = $request; - $this->body = $body; - $this->httpStatusCode = $httpStatusCode; - $this->headers = $headers; - - $this->decodeBody(); - } - - /** - * Return the original request that returned this response. - * - * @return FacebookRequest - */ - public function getRequest() - { - return $this->request; - } - - /** - * Return the FacebookApp entity used for this response. - * - * @return FacebookApp - */ - public function getApp() - { - return $this->request->getApp(); - } - - /** - * Return the access token that was used for this response. - * - * @return string|null - */ - public function getAccessToken() - { - return $this->request->getAccessToken(); - } - - /** - * Return the HTTP status code for this response. - * - * @return int - */ - public function getHttpStatusCode() - { - return $this->httpStatusCode; - } - - /** - * Return the HTTP headers for this response. - * - * @return array - */ - public function getHeaders() - { - return $this->headers; - } - - /** - * Return the raw body response. - * - * @return string - */ - public function getBody() - { - return $this->body; - } - - /** - * Return the decoded body response. - * - * @return array - */ - public function getDecodedBody() - { - return $this->decodedBody; - } - - /** - * Get the app secret proof that was used for this response. - * - * @return string|null - */ - public function getAppSecretProof() - { - return $this->request->getAppSecretProof(); - } - - /** - * Get the ETag associated with the response. - * - * @return string|null - */ - public function getETag() - { - return isset($this->headers['ETag']) ? $this->headers['ETag'] : null; - } - - /** - * Get the version of Graph that returned this response. - * - * @return string|null - */ - public function getGraphVersion() - { - return isset($this->headers['Facebook-API-Version']) ? $this->headers['Facebook-API-Version'] : null; - } - - /** - * Returns true if Graph returned an error message. - * - * @return boolean - */ - public function isError() - { - return isset($this->decodedBody['error']); - } - - /** - * Throws the exception. - * - * @throws FacebookSDKException - */ - public function throwException() - { - throw $this->thrownException; - } - - /** - * Instantiates an exception to be thrown later. - */ - public function makeException() - { - $this->thrownException = FacebookResponseException::create($this); - } - - /** - * Returns the exception that was thrown for this request. - * - * @return FacebookResponseException|null - */ - public function getThrownException() - { - return $this->thrownException; - } - - /** - * Convert the raw response into an array if possible. - * - * Graph will return 2 types of responses: - * - JSON(P) - * Most responses from Graph are JSON(P) - * - application/x-www-form-urlencoded key/value pairs - * Happens on the `/oauth/access_token` endpoint when exchanging - * a short-lived access token for a long-lived access token - * - And sometimes nothing :/ but that'd be a bug. - */ - public function decodeBody() - { - $this->decodedBody = json_decode($this->body, true); - - if ($this->decodedBody === null) { - $this->decodedBody = []; - parse_str($this->body, $this->decodedBody); - } elseif (is_bool($this->decodedBody)) { - // Backwards compatibility for Graph < 2.1. - // Mimics 2.1 responses. - // @TODO Remove this after Graph 2.0 is no longer supported - $this->decodedBody = ['success' => $this->decodedBody]; - } elseif (is_numeric($this->decodedBody)) { - $this->decodedBody = ['id' => $this->decodedBody]; - } - - if (!is_array($this->decodedBody)) { - $this->decodedBody = []; - } - - if ($this->isError()) { - $this->makeException(); - } - } - - /** - * Instantiate a new GraphObject from response. - * - * @param string|null $subclassName The GraphNode subclass to cast to. - * - * @return \Facebook\GraphNodes\GraphObject - * - * @throws FacebookSDKException - * - * @deprecated 5.0.0 getGraphObject() has been renamed to getGraphNode() - * @todo v6: Remove this method - */ - public function getGraphObject($subclassName = null) - { - return $this->getGraphNode($subclassName); - } - - /** - * Instantiate a new GraphNode from response. - * - * @param string|null $subclassName The GraphNode subclass to cast to. - * - * @return \Facebook\GraphNodes\GraphNode - * - * @throws FacebookSDKException - */ - public function getGraphNode($subclassName = null) - { - $factory = new GraphNodeFactory($this); - - return $factory->makeGraphNode($subclassName); - } - - /** - * Convenience method for creating a GraphAlbum collection. - * - * @return \Facebook\GraphNodes\GraphAlbum - * - * @throws FacebookSDKException - */ - public function getGraphAlbum() - { - $factory = new GraphNodeFactory($this); - - return $factory->makeGraphAlbum(); - } - - /** - * Convenience method for creating a GraphPage collection. - * - * @return \Facebook\GraphNodes\GraphPage - * - * @throws FacebookSDKException - */ - public function getGraphPage() - { - $factory = new GraphNodeFactory($this); - - return $factory->makeGraphPage(); - } - - /** - * Convenience method for creating a GraphSessionInfo collection. - * - * @return \Facebook\GraphNodes\GraphSessionInfo - * - * @throws FacebookSDKException - */ - public function getGraphSessionInfo() - { - $factory = new GraphNodeFactory($this); - - return $factory->makeGraphSessionInfo(); - } - - /** - * Convenience method for creating a GraphUser collection. - * - * @return \Facebook\GraphNodes\GraphUser - * - * @throws FacebookSDKException - */ - public function getGraphUser() - { - $factory = new GraphNodeFactory($this); - - return $factory->makeGraphUser(); - } - - /** - * Convenience method for creating a GraphEvent collection. - * - * @return \Facebook\GraphNodes\GraphEvent - * - * @throws FacebookSDKException - */ - public function getGraphEvent() - { - $factory = new GraphNodeFactory($this); - - return $factory->makeGraphEvent(); - } - - /** - * Convenience method for creating a GraphGroup collection. - * - * @return \Facebook\GraphNodes\GraphGroup - * - * @throws FacebookSDKException - */ - public function getGraphGroup() - { - $factory = new GraphNodeFactory($this); - - return $factory->makeGraphGroup(); - } - - /** - * Instantiate a new GraphList from response. - * - * @param string|null $subclassName The GraphNode subclass to cast list items to. - * @param boolean $auto_prefix Toggle to auto-prefix the subclass name. - * - * @return \Facebook\GraphNodes\GraphList - * - * @throws FacebookSDKException - * - * @deprecated 5.0.0 getGraphList() has been renamed to getGraphEdge() - * @todo v6: Remove this method - */ - public function getGraphList($subclassName = null, $auto_prefix = true) - { - return $this->getGraphEdge($subclassName, $auto_prefix); - } - - /** - * Instantiate a new GraphEdge from response. - * - * @param string|null $subclassName The GraphNode subclass to cast list items to. - * @param boolean $auto_prefix Toggle to auto-prefix the subclass name. - * - * @return \Facebook\GraphNodes\GraphEdge - * - * @throws FacebookSDKException - */ - public function getGraphEdge($subclassName = null, $auto_prefix = true) - { - $factory = new GraphNodeFactory($this); - - return $factory->makeGraphEdge($subclassName, $auto_prefix); - } -} diff --git a/mayor-orig/www/include/share/facebook/FileUpload/FacebookFile.php b/mayor-orig/www/include/share/facebook/FileUpload/FacebookFile.php deleted file mode 100644 index 3c1536d4..00000000 --- a/mayor-orig/www/include/share/facebook/FileUpload/FacebookFile.php +++ /dev/null @@ -1,169 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\FileUpload; - -use Facebook\Exceptions\FacebookSDKException; - -/** - * Class FacebookFile - * - * @package Facebook - */ -class FacebookFile -{ - /** - * @var string The path to the file on the system. - */ - protected $path; - - /** - * @var int The maximum bytes to read. Defaults to -1 (read all the remaining buffer). - */ - private $maxLength; - - /** - * @var int Seek to the specified offset before reading. If this number is negative, no seeking will occur and reading will start from the current position. - */ - private $offset; - - /** - * @var resource The stream pointing to the file. - */ - protected $stream; - - /** - * Creates a new FacebookFile entity. - * - * @param string $filePath - * @param int $maxLength - * @param int $offset - * - * @throws FacebookSDKException - */ - public function __construct($filePath, $maxLength = -1, $offset = -1) - { - $this->path = $filePath; - $this->maxLength = $maxLength; - $this->offset = $offset; - $this->open(); - } - - /** - * Closes the stream when destructed. - */ - public function __destruct() - { - $this->close(); - } - - /** - * Opens a stream for the file. - * - * @throws FacebookSDKException - */ - public function open() - { - if (!$this->isRemoteFile($this->path) && !is_readable($this->path)) { - throw new FacebookSDKException('Failed to create FacebookFile entity. Unable to read resource: ' . $this->path . '.'); - } - - $this->stream = fopen($this->path, 'r'); - - if (!$this->stream) { - throw new FacebookSDKException('Failed to create FacebookFile entity. Unable to open resource: ' . $this->path . '.'); - } - } - - /** - * Stops the file stream. - */ - public function close() - { - if (is_resource($this->stream)) { - fclose($this->stream); - } - } - - /** - * Return the contents of the file. - * - * @return string - */ - public function getContents() - { - return stream_get_contents($this->stream, $this->maxLength, $this->offset); - } - - /** - * Return the name of the file. - * - * @return string - */ - public function getFileName() - { - return basename($this->path); - } - - /** - * Return the path of the file. - * - * @return string - */ - public function getFilePath() - { - return $this->path; - } - - /** - * Return the size of the file. - * - * @return int - */ - public function getSize() - { - return filesize($this->path); - } - - /** - * Return the mimetype of the file. - * - * @return string - */ - public function getMimetype() - { - return Mimetypes::getInstance()->fromFilename($this->path) ?: 'text/plain'; - } - - /** - * Returns true if the path to the file is remote. - * - * @param string $pathToFile - * - * @return boolean - */ - protected function isRemoteFile($pathToFile) - { - return preg_match('/^(https?|ftp):\/\/.*/', $pathToFile) === 1; - } -} diff --git a/mayor-orig/www/include/share/facebook/FileUpload/FacebookResumableUploader.php b/mayor-orig/www/include/share/facebook/FileUpload/FacebookResumableUploader.php deleted file mode 100644 index 92a22f14..00000000 --- a/mayor-orig/www/include/share/facebook/FileUpload/FacebookResumableUploader.php +++ /dev/null @@ -1,167 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\FileUpload; - -use Facebook\Authentication\AccessToken; -use Facebook\Exceptions\FacebookResponseException; -use Facebook\Exceptions\FacebookResumableUploadException; -use Facebook\Exceptions\FacebookSDKException; -use Facebook\FacebookApp; -use Facebook\FacebookClient; -use Facebook\FacebookRequest; - -/** - * Class FacebookResumableUploader - * - * @package Facebook - */ -class FacebookResumableUploader -{ - /** - * @var FacebookApp - */ - protected $app; - - /** - * @var string - */ - protected $accessToken; - - /** - * @var FacebookClient The Facebook client service. - */ - protected $client; - - /** - * @var string Graph version to use for this request. - */ - protected $graphVersion; - - /** - * @param FacebookApp $app - * @param FacebookClient $client - * @param AccessToken|string|null $accessToken - * @param string $graphVersion - */ - public function __construct(FacebookApp $app, FacebookClient $client, $accessToken, $graphVersion) - { - $this->app = $app; - $this->client = $client; - $this->accessToken = $accessToken; - $this->graphVersion = $graphVersion; - } - - /** - * Upload by chunks - start phase - * - * @param string $endpoint - * @param FacebookFile $file - * - * @return FacebookTransferChunk - * - * @throws FacebookSDKException - */ - public function start($endpoint, FacebookFile $file) - { - $params = [ - 'upload_phase' => 'start', - 'file_size' => $file->getSize(), - ]; - $response = $this->sendUploadRequest($endpoint, $params); - - return new FacebookTransferChunk($file, $response['upload_session_id'], $response['video_id'], $response['start_offset'], $response['end_offset']); - } - - /** - * Upload by chunks - transfer phase - * - * @param string $endpoint - * @param FacebookTransferChunk $chunk - * @param boolean $allowToThrow - * - * @return FacebookTransferChunk - * - * @throws FacebookResponseException - */ - public function transfer($endpoint, FacebookTransferChunk $chunk, $allowToThrow = false) - { - $params = [ - 'upload_phase' => 'transfer', - 'upload_session_id' => $chunk->getUploadSessionId(), - 'start_offset' => $chunk->getStartOffset(), - 'video_file_chunk' => $chunk->getPartialFile(), - ]; - - try { - $response = $this->sendUploadRequest($endpoint, $params); - } catch (FacebookResponseException $e) { - $preException = $e->getPrevious(); - if ($allowToThrow || !$preException instanceof FacebookResumableUploadException) { - throw $e; - } - - // Return the same chunk entity so it can be retried. - return $chunk; - } - - return new FacebookTransferChunk($chunk->getFile(), $chunk->getUploadSessionId(), $chunk->getVideoId(), $response['start_offset'], $response['end_offset']); - } - - /** - * Upload by chunks - finish phase - * - * @param string $endpoint - * @param string $uploadSessionId - * @param array $metadata The metadata associated with the file. - * - * @return boolean - * - * @throws FacebookSDKException - */ - public function finish($endpoint, $uploadSessionId, $metadata = []) - { - $params = array_merge($metadata, [ - 'upload_phase' => 'finish', - 'upload_session_id' => $uploadSessionId, - ]); - $response = $this->sendUploadRequest($endpoint, $params); - - return $response['success']; - } - - /** - * Helper to make a FacebookRequest and send it. - * - * @param string $endpoint The endpoint to POST to. - * @param array $params The params to send with the request. - * - * @return array - */ - private function sendUploadRequest($endpoint, $params = []) - { - $request = new FacebookRequest($this->app, $this->accessToken, 'POST', $endpoint, $params, null, $this->graphVersion); - - return $this->client->sendRequest($request)->getDecodedBody(); - } -} diff --git a/mayor-orig/www/include/share/facebook/FileUpload/FacebookTransferChunk.php b/mayor-orig/www/include/share/facebook/FileUpload/FacebookTransferChunk.php deleted file mode 100644 index a909e875..00000000 --- a/mayor-orig/www/include/share/facebook/FileUpload/FacebookTransferChunk.php +++ /dev/null @@ -1,133 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\FileUpload; - -/** - * Class FacebookTransferChunk - * - * @package Facebook - */ -class FacebookTransferChunk -{ - /** - * @var FacebookFile The file to chunk during upload. - */ - private $file; - - /** - * @var int The ID of the upload session. - */ - private $uploadSessionId; - - /** - * @var int Start byte position of the next file chunk. - */ - private $startOffset; - - /** - * @var int End byte position of the next file chunk. - */ - private $endOffset; - - /** - * @var int The ID of the video. - */ - private $videoId; - - /** - * @param FacebookFile $file - * @param int $uploadSessionId - * @param int $videoId - * @param int $startOffset - * @param int $endOffset - */ - public function __construct(FacebookFile $file, $uploadSessionId, $videoId, $startOffset, $endOffset) - { - $this->file = $file; - $this->uploadSessionId = $uploadSessionId; - $this->videoId = $videoId; - $this->startOffset = $startOffset; - $this->endOffset = $endOffset; - } - - /** - * Return the file entity. - * - * @return FacebookFile - */ - public function getFile() - { - return $this->file; - } - - /** - * Return a FacebookFile entity with partial content. - * - * @return FacebookFile - */ - public function getPartialFile() - { - $maxLength = $this->endOffset - $this->startOffset; - - return new FacebookFile($this->file->getFilePath(), $maxLength, $this->startOffset); - } - - /** - * Return upload session Id - * - * @return int - */ - public function getUploadSessionId() - { - return $this->uploadSessionId; - } - - /** - * Check whether is the last chunk - * - * @return bool - */ - public function isLastChunk() - { - return $this->startOffset === $this->endOffset; - } - - /** - * @return int - */ - public function getStartOffset() - { - return $this->startOffset; - } - - /** - * Get uploaded video Id - * - * @return int - */ - public function getVideoId() - { - return $this->videoId; - } -} diff --git a/mayor-orig/www/include/share/facebook/FileUpload/FacebookVideo.php b/mayor-orig/www/include/share/facebook/FileUpload/FacebookVideo.php deleted file mode 100644 index ee6dd538..00000000 --- a/mayor-orig/www/include/share/facebook/FileUpload/FacebookVideo.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\FileUpload; - -/** - * Class FacebookVideo - * - * @package Facebook - */ -class FacebookVideo extends FacebookFile -{ -} diff --git a/mayor-orig/www/include/share/facebook/FileUpload/Mimetypes.php b/mayor-orig/www/include/share/facebook/FileUpload/Mimetypes.php deleted file mode 100644 index 95d39924..00000000 --- a/mayor-orig/www/include/share/facebook/FileUpload/Mimetypes.php +++ /dev/null @@ -1,988 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\FileUpload; - -/** - * Provides mappings of file extensions to mimetypes - * - * Taken from Guzzle - * - * @see https://github.com/guzzle/guzzle/blob/master/src/Mimetypes.php - * - * @link http://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x/conf/mime.types - */ -class Mimetypes -{ - /** @var self */ - protected static $instance; - - /** @var array Mapping of extension to mimetype */ - protected $mimetypes = [ - '3dml' => 'text/vnd.in3d.3dml', - '3g2' => 'video/3gpp2', - '3gp' => 'video/3gpp', - '7z' => 'application/x-7z-compressed', - 'aab' => 'application/x-authorware-bin', - 'aac' => 'audio/x-aac', - 'aam' => 'application/x-authorware-map', - 'aas' => 'application/x-authorware-seg', - 'abw' => 'application/x-abiword', - 'ac' => 'application/pkix-attr-cert', - 'acc' => 'application/vnd.americandynamics.acc', - 'ace' => 'application/x-ace-compressed', - 'acu' => 'application/vnd.acucobol', - 'acutc' => 'application/vnd.acucorp', - 'adp' => 'audio/adpcm', - 'aep' => 'application/vnd.audiograph', - 'afm' => 'application/x-font-type1', - 'afp' => 'application/vnd.ibm.modcap', - 'ahead' => 'application/vnd.ahead.space', - 'ai' => 'application/postscript', - 'aif' => 'audio/x-aiff', - 'aifc' => 'audio/x-aiff', - 'aiff' => 'audio/x-aiff', - 'air' => 'application/vnd.adobe.air-application-installer-package+zip', - 'ait' => 'application/vnd.dvb.ait', - 'ami' => 'application/vnd.amiga.ami', - 'apk' => 'application/vnd.android.package-archive', - 'application' => 'application/x-ms-application', - 'apr' => 'application/vnd.lotus-approach', - 'asa' => 'text/plain', - 'asax' => 'application/octet-stream', - 'asc' => 'application/pgp-signature', - 'ascx' => 'text/plain', - 'asf' => 'video/x-ms-asf', - 'ashx' => 'text/plain', - 'asm' => 'text/x-asm', - 'asmx' => 'text/plain', - 'aso' => 'application/vnd.accpac.simply.aso', - 'asp' => 'text/plain', - 'aspx' => 'text/plain', - 'asx' => 'video/x-ms-asf', - 'atc' => 'application/vnd.acucorp', - 'atom' => 'application/atom+xml', - 'atomcat' => 'application/atomcat+xml', - 'atomsvc' => 'application/atomsvc+xml', - 'atx' => 'application/vnd.antix.game-component', - 'au' => 'audio/basic', - 'avi' => 'video/x-msvideo', - 'aw' => 'application/applixware', - 'axd' => 'text/plain', - 'azf' => 'application/vnd.airzip.filesecure.azf', - 'azs' => 'application/vnd.airzip.filesecure.azs', - 'azw' => 'application/vnd.amazon.ebook', - 'bat' => 'application/x-msdownload', - 'bcpio' => 'application/x-bcpio', - 'bdf' => 'application/x-font-bdf', - 'bdm' => 'application/vnd.syncml.dm+wbxml', - 'bed' => 'application/vnd.realvnc.bed', - 'bh2' => 'application/vnd.fujitsu.oasysprs', - 'bin' => 'application/octet-stream', - 'bmi' => 'application/vnd.bmi', - 'bmp' => 'image/bmp', - 'book' => 'application/vnd.framemaker', - 'box' => 'application/vnd.previewsystems.box', - 'boz' => 'application/x-bzip2', - 'bpk' => 'application/octet-stream', - 'btif' => 'image/prs.btif', - 'bz' => 'application/x-bzip', - 'bz2' => 'application/x-bzip2', - 'c' => 'text/x-c', - 'c11amc' => 'application/vnd.cluetrust.cartomobile-config', - 'c11amz' => 'application/vnd.cluetrust.cartomobile-config-pkg', - 'c4d' => 'application/vnd.clonk.c4group', - 'c4f' => 'application/vnd.clonk.c4group', - 'c4g' => 'application/vnd.clonk.c4group', - 'c4p' => 'application/vnd.clonk.c4group', - 'c4u' => 'application/vnd.clonk.c4group', - 'cab' => 'application/vnd.ms-cab-compressed', - 'car' => 'application/vnd.curl.car', - 'cat' => 'application/vnd.ms-pki.seccat', - 'cc' => 'text/x-c', - 'cct' => 'application/x-director', - 'ccxml' => 'application/ccxml+xml', - 'cdbcmsg' => 'application/vnd.contact.cmsg', - 'cdf' => 'application/x-netcdf', - 'cdkey' => 'application/vnd.mediastation.cdkey', - 'cdmia' => 'application/cdmi-capability', - 'cdmic' => 'application/cdmi-container', - 'cdmid' => 'application/cdmi-domain', - 'cdmio' => 'application/cdmi-object', - 'cdmiq' => 'application/cdmi-queue', - 'cdx' => 'chemical/x-cdx', - 'cdxml' => 'application/vnd.chemdraw+xml', - 'cdy' => 'application/vnd.cinderella', - 'cer' => 'application/pkix-cert', - 'cfc' => 'application/x-coldfusion', - 'cfm' => 'application/x-coldfusion', - 'cgm' => 'image/cgm', - 'chat' => 'application/x-chat', - 'chm' => 'application/vnd.ms-htmlhelp', - 'chrt' => 'application/vnd.kde.kchart', - 'cif' => 'chemical/x-cif', - 'cii' => 'application/vnd.anser-web-certificate-issue-initiation', - 'cil' => 'application/vnd.ms-artgalry', - 'cla' => 'application/vnd.claymore', - 'class' => 'application/java-vm', - 'clkk' => 'application/vnd.crick.clicker.keyboard', - 'clkp' => 'application/vnd.crick.clicker.palette', - 'clkt' => 'application/vnd.crick.clicker.template', - 'clkw' => 'application/vnd.crick.clicker.wordbank', - 'clkx' => 'application/vnd.crick.clicker', - 'clp' => 'application/x-msclip', - 'cmc' => 'application/vnd.cosmocaller', - 'cmdf' => 'chemical/x-cmdf', - 'cml' => 'chemical/x-cml', - 'cmp' => 'application/vnd.yellowriver-custom-menu', - 'cmx' => 'image/x-cmx', - 'cod' => 'application/vnd.rim.cod', - 'com' => 'application/x-msdownload', - 'conf' => 'text/plain', - 'cpio' => 'application/x-cpio', - 'cpp' => 'text/x-c', - 'cpt' => 'application/mac-compactpro', - 'crd' => 'application/x-mscardfile', - 'crl' => 'application/pkix-crl', - 'crt' => 'application/x-x509-ca-cert', - 'cryptonote' => 'application/vnd.rig.cryptonote', - 'cs' => 'text/plain', - 'csh' => 'application/x-csh', - 'csml' => 'chemical/x-csml', - 'csp' => 'application/vnd.commonspace', - 'css' => 'text/css', - 'cst' => 'application/x-director', - 'csv' => 'text/csv', - 'cu' => 'application/cu-seeme', - 'curl' => 'text/vnd.curl', - 'cww' => 'application/prs.cww', - 'cxt' => 'application/x-director', - 'cxx' => 'text/x-c', - 'dae' => 'model/vnd.collada+xml', - 'daf' => 'application/vnd.mobius.daf', - 'dataless' => 'application/vnd.fdsn.seed', - 'davmount' => 'application/davmount+xml', - 'dcr' => 'application/x-director', - 'dcurl' => 'text/vnd.curl.dcurl', - 'dd2' => 'application/vnd.oma.dd2+xml', - 'ddd' => 'application/vnd.fujixerox.ddd', - 'deb' => 'application/x-debian-package', - 'def' => 'text/plain', - 'deploy' => 'application/octet-stream', - 'der' => 'application/x-x509-ca-cert', - 'dfac' => 'application/vnd.dreamfactory', - 'dic' => 'text/x-c', - 'dir' => 'application/x-director', - 'dis' => 'application/vnd.mobius.dis', - 'dist' => 'application/octet-stream', - 'distz' => 'application/octet-stream', - 'djv' => 'image/vnd.djvu', - 'djvu' => 'image/vnd.djvu', - 'dll' => 'application/x-msdownload', - 'dmg' => 'application/octet-stream', - 'dms' => 'application/octet-stream', - 'dna' => 'application/vnd.dna', - 'doc' => 'application/msword', - 'docm' => 'application/vnd.ms-word.document.macroenabled.12', - 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'dot' => 'application/msword', - 'dotm' => 'application/vnd.ms-word.template.macroenabled.12', - 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', - 'dp' => 'application/vnd.osgi.dp', - 'dpg' => 'application/vnd.dpgraph', - 'dra' => 'audio/vnd.dra', - 'dsc' => 'text/prs.lines.tag', - 'dssc' => 'application/dssc+der', - 'dtb' => 'application/x-dtbook+xml', - 'dtd' => 'application/xml-dtd', - 'dts' => 'audio/vnd.dts', - 'dtshd' => 'audio/vnd.dts.hd', - 'dump' => 'application/octet-stream', - 'dvi' => 'application/x-dvi', - 'dwf' => 'model/vnd.dwf', - 'dwg' => 'image/vnd.dwg', - 'dxf' => 'image/vnd.dxf', - 'dxp' => 'application/vnd.spotfire.dxp', - 'dxr' => 'application/x-director', - 'ecelp4800' => 'audio/vnd.nuera.ecelp4800', - 'ecelp7470' => 'audio/vnd.nuera.ecelp7470', - 'ecelp9600' => 'audio/vnd.nuera.ecelp9600', - 'ecma' => 'application/ecmascript', - 'edm' => 'application/vnd.novadigm.edm', - 'edx' => 'application/vnd.novadigm.edx', - 'efif' => 'application/vnd.picsel', - 'ei6' => 'application/vnd.pg.osasli', - 'elc' => 'application/octet-stream', - 'eml' => 'message/rfc822', - 'emma' => 'application/emma+xml', - 'eol' => 'audio/vnd.digital-winds', - 'eot' => 'application/vnd.ms-fontobject', - 'eps' => 'application/postscript', - 'epub' => 'application/epub+zip', - 'es3' => 'application/vnd.eszigno3+xml', - 'esf' => 'application/vnd.epson.esf', - 'et3' => 'application/vnd.eszigno3+xml', - 'etx' => 'text/x-setext', - 'exe' => 'application/x-msdownload', - 'exi' => 'application/exi', - 'ext' => 'application/vnd.novadigm.ext', - 'ez' => 'application/andrew-inset', - 'ez2' => 'application/vnd.ezpix-album', - 'ez3' => 'application/vnd.ezpix-package', - 'f' => 'text/x-fortran', - 'f4v' => 'video/x-f4v', - 'f77' => 'text/x-fortran', - 'f90' => 'text/x-fortran', - 'fbs' => 'image/vnd.fastbidsheet', - 'fcs' => 'application/vnd.isac.fcs', - 'fdf' => 'application/vnd.fdf', - 'fe_launch' => 'application/vnd.denovo.fcselayout-link', - 'fg5' => 'application/vnd.fujitsu.oasysgp', - 'fgd' => 'application/x-director', - 'fh' => 'image/x-freehand', - 'fh4' => 'image/x-freehand', - 'fh5' => 'image/x-freehand', - 'fh7' => 'image/x-freehand', - 'fhc' => 'image/x-freehand', - 'fig' => 'application/x-xfig', - 'fli' => 'video/x-fli', - 'flo' => 'application/vnd.micrografx.flo', - 'flv' => 'video/x-flv', - 'flw' => 'application/vnd.kde.kivio', - 'flx' => 'text/vnd.fmi.flexstor', - 'fly' => 'text/vnd.fly', - 'fm' => 'application/vnd.framemaker', - 'fnc' => 'application/vnd.frogans.fnc', - 'for' => 'text/x-fortran', - 'fpx' => 'image/vnd.fpx', - 'frame' => 'application/vnd.framemaker', - 'fsc' => 'application/vnd.fsc.weblaunch', - 'fst' => 'image/vnd.fst', - 'ftc' => 'application/vnd.fluxtime.clip', - 'fti' => 'application/vnd.anser-web-funds-transfer-initiation', - 'fvt' => 'video/vnd.fvt', - 'fxp' => 'application/vnd.adobe.fxp', - 'fxpl' => 'application/vnd.adobe.fxp', - 'fzs' => 'application/vnd.fuzzysheet', - 'g2w' => 'application/vnd.geoplan', - 'g3' => 'image/g3fax', - 'g3w' => 'application/vnd.geospace', - 'gac' => 'application/vnd.groove-account', - 'gdl' => 'model/vnd.gdl', - 'geo' => 'application/vnd.dynageo', - 'gex' => 'application/vnd.geometry-explorer', - 'ggb' => 'application/vnd.geogebra.file', - 'ggt' => 'application/vnd.geogebra.tool', - 'ghf' => 'application/vnd.groove-help', - 'gif' => 'image/gif', - 'gim' => 'application/vnd.groove-identity-message', - 'gmx' => 'application/vnd.gmx', - 'gnumeric' => 'application/x-gnumeric', - 'gph' => 'application/vnd.flographit', - 'gqf' => 'application/vnd.grafeq', - 'gqs' => 'application/vnd.grafeq', - 'gram' => 'application/srgs', - 'gre' => 'application/vnd.geometry-explorer', - 'grv' => 'application/vnd.groove-injector', - 'grxml' => 'application/srgs+xml', - 'gsf' => 'application/x-font-ghostscript', - 'gtar' => 'application/x-gtar', - 'gtm' => 'application/vnd.groove-tool-message', - 'gtw' => 'model/vnd.gtw', - 'gv' => 'text/vnd.graphviz', - 'gxt' => 'application/vnd.geonext', - 'h' => 'text/x-c', - 'h261' => 'video/h261', - 'h263' => 'video/h263', - 'h264' => 'video/h264', - 'hal' => 'application/vnd.hal+xml', - 'hbci' => 'application/vnd.hbci', - 'hdf' => 'application/x-hdf', - 'hh' => 'text/x-c', - 'hlp' => 'application/winhlp', - 'hpgl' => 'application/vnd.hp-hpgl', - 'hpid' => 'application/vnd.hp-hpid', - 'hps' => 'application/vnd.hp-hps', - 'hqx' => 'application/mac-binhex40', - 'hta' => 'application/octet-stream', - 'htc' => 'text/html', - 'htke' => 'application/vnd.kenameaapp', - 'htm' => 'text/html', - 'html' => 'text/html', - 'hvd' => 'application/vnd.yamaha.hv-dic', - 'hvp' => 'application/vnd.yamaha.hv-voice', - 'hvs' => 'application/vnd.yamaha.hv-script', - 'i2g' => 'application/vnd.intergeo', - 'icc' => 'application/vnd.iccprofile', - 'ice' => 'x-conference/x-cooltalk', - 'icm' => 'application/vnd.iccprofile', - 'ico' => 'image/x-icon', - 'ics' => 'text/calendar', - 'ief' => 'image/ief', - 'ifb' => 'text/calendar', - 'ifm' => 'application/vnd.shana.informed.formdata', - 'iges' => 'model/iges', - 'igl' => 'application/vnd.igloader', - 'igm' => 'application/vnd.insors.igm', - 'igs' => 'model/iges', - 'igx' => 'application/vnd.micrografx.igx', - 'iif' => 'application/vnd.shana.informed.interchange', - 'imp' => 'application/vnd.accpac.simply.imp', - 'ims' => 'application/vnd.ms-ims', - 'in' => 'text/plain', - 'ini' => 'text/plain', - 'ipfix' => 'application/ipfix', - 'ipk' => 'application/vnd.shana.informed.package', - 'irm' => 'application/vnd.ibm.rights-management', - 'irp' => 'application/vnd.irepository.package+xml', - 'iso' => 'application/octet-stream', - 'itp' => 'application/vnd.shana.informed.formtemplate', - 'ivp' => 'application/vnd.immervision-ivp', - 'ivu' => 'application/vnd.immervision-ivu', - 'jad' => 'text/vnd.sun.j2me.app-descriptor', - 'jam' => 'application/vnd.jam', - 'jar' => 'application/java-archive', - 'java' => 'text/x-java-source', - 'jisp' => 'application/vnd.jisp', - 'jlt' => 'application/vnd.hp-jlyt', - 'jnlp' => 'application/x-java-jnlp-file', - 'joda' => 'application/vnd.joost.joda-archive', - 'jpe' => 'image/jpeg', - 'jpeg' => 'image/jpeg', - 'jpg' => 'image/jpeg', - 'jpgm' => 'video/jpm', - 'jpgv' => 'video/jpeg', - 'jpm' => 'video/jpm', - 'js' => 'text/javascript', - 'json' => 'application/json', - 'kar' => 'audio/midi', - 'karbon' => 'application/vnd.kde.karbon', - 'kfo' => 'application/vnd.kde.kformula', - 'kia' => 'application/vnd.kidspiration', - 'kml' => 'application/vnd.google-earth.kml+xml', - 'kmz' => 'application/vnd.google-earth.kmz', - 'kne' => 'application/vnd.kinar', - 'knp' => 'application/vnd.kinar', - 'kon' => 'application/vnd.kde.kontour', - 'kpr' => 'application/vnd.kde.kpresenter', - 'kpt' => 'application/vnd.kde.kpresenter', - 'ksp' => 'application/vnd.kde.kspread', - 'ktr' => 'application/vnd.kahootz', - 'ktx' => 'image/ktx', - 'ktz' => 'application/vnd.kahootz', - 'kwd' => 'application/vnd.kde.kword', - 'kwt' => 'application/vnd.kde.kword', - 'lasxml' => 'application/vnd.las.las+xml', - 'latex' => 'application/x-latex', - 'lbd' => 'application/vnd.llamagraphics.life-balance.desktop', - 'lbe' => 'application/vnd.llamagraphics.life-balance.exchange+xml', - 'les' => 'application/vnd.hhe.lesson-player', - 'lha' => 'application/octet-stream', - 'link66' => 'application/vnd.route66.link66+xml', - 'list' => 'text/plain', - 'list3820' => 'application/vnd.ibm.modcap', - 'listafp' => 'application/vnd.ibm.modcap', - 'log' => 'text/plain', - 'lostxml' => 'application/lost+xml', - 'lrf' => 'application/octet-stream', - 'lrm' => 'application/vnd.ms-lrm', - 'ltf' => 'application/vnd.frogans.ltf', - 'lvp' => 'audio/vnd.lucent.voice', - 'lwp' => 'application/vnd.lotus-wordpro', - 'lzh' => 'application/octet-stream', - 'm13' => 'application/x-msmediaview', - 'm14' => 'application/x-msmediaview', - 'm1v' => 'video/mpeg', - 'm21' => 'application/mp21', - 'm2a' => 'audio/mpeg', - 'm2v' => 'video/mpeg', - 'm3a' => 'audio/mpeg', - 'm3u' => 'audio/x-mpegurl', - 'm3u8' => 'application/vnd.apple.mpegurl', - 'm4a' => 'audio/mp4', - 'm4u' => 'video/vnd.mpegurl', - 'm4v' => 'video/mp4', - 'ma' => 'application/mathematica', - 'mads' => 'application/mads+xml', - 'mag' => 'application/vnd.ecowin.chart', - 'maker' => 'application/vnd.framemaker', - 'man' => 'text/troff', - 'mathml' => 'application/mathml+xml', - 'mb' => 'application/mathematica', - 'mbk' => 'application/vnd.mobius.mbk', - 'mbox' => 'application/mbox', - 'mc1' => 'application/vnd.medcalcdata', - 'mcd' => 'application/vnd.mcd', - 'mcurl' => 'text/vnd.curl.mcurl', - 'mdb' => 'application/x-msaccess', - 'mdi' => 'image/vnd.ms-modi', - 'me' => 'text/troff', - 'mesh' => 'model/mesh', - 'meta4' => 'application/metalink4+xml', - 'mets' => 'application/mets+xml', - 'mfm' => 'application/vnd.mfmp', - 'mgp' => 'application/vnd.osgeo.mapguide.package', - 'mgz' => 'application/vnd.proteus.magazine', - 'mid' => 'audio/midi', - 'midi' => 'audio/midi', - 'mif' => 'application/vnd.mif', - 'mime' => 'message/rfc822', - 'mj2' => 'video/mj2', - 'mjp2' => 'video/mj2', - 'mlp' => 'application/vnd.dolby.mlp', - 'mmd' => 'application/vnd.chipnuts.karaoke-mmd', - 'mmf' => 'application/vnd.smaf', - 'mmr' => 'image/vnd.fujixerox.edmics-mmr', - 'mny' => 'application/x-msmoney', - 'mobi' => 'application/x-mobipocket-ebook', - 'mods' => 'application/mods+xml', - 'mov' => 'video/quicktime', - 'movie' => 'video/x-sgi-movie', - 'mp2' => 'audio/mpeg', - 'mp21' => 'application/mp21', - 'mp2a' => 'audio/mpeg', - 'mp3' => 'audio/mpeg', - 'mp4' => 'video/mp4', - 'mp4a' => 'audio/mp4', - 'mp4s' => 'application/mp4', - 'mp4v' => 'video/mp4', - 'mpc' => 'application/vnd.mophun.certificate', - 'mpe' => 'video/mpeg', - 'mpeg' => 'video/mpeg', - 'mpg' => 'video/mpeg', - 'mpg4' => 'video/mp4', - 'mpga' => 'audio/mpeg', - 'mpkg' => 'application/vnd.apple.installer+xml', - 'mpm' => 'application/vnd.blueice.multipass', - 'mpn' => 'application/vnd.mophun.application', - 'mpp' => 'application/vnd.ms-project', - 'mpt' => 'application/vnd.ms-project', - 'mpy' => 'application/vnd.ibm.minipay', - 'mqy' => 'application/vnd.mobius.mqy', - 'mrc' => 'application/marc', - 'mrcx' => 'application/marcxml+xml', - 'ms' => 'text/troff', - 'mscml' => 'application/mediaservercontrol+xml', - 'mseed' => 'application/vnd.fdsn.mseed', - 'mseq' => 'application/vnd.mseq', - 'msf' => 'application/vnd.epson.msf', - 'msh' => 'model/mesh', - 'msi' => 'application/x-msdownload', - 'msl' => 'application/vnd.mobius.msl', - 'msty' => 'application/vnd.muvee.style', - 'mts' => 'model/vnd.mts', - 'mus' => 'application/vnd.musician', - 'musicxml' => 'application/vnd.recordare.musicxml+xml', - 'mvb' => 'application/x-msmediaview', - 'mwf' => 'application/vnd.mfer', - 'mxf' => 'application/mxf', - 'mxl' => 'application/vnd.recordare.musicxml', - 'mxml' => 'application/xv+xml', - 'mxs' => 'application/vnd.triscape.mxs', - 'mxu' => 'video/vnd.mpegurl', - 'n-gage' => 'application/vnd.nokia.n-gage.symbian.install', - 'n3' => 'text/n3', - 'nb' => 'application/mathematica', - 'nbp' => 'application/vnd.wolfram.player', - 'nc' => 'application/x-netcdf', - 'ncx' => 'application/x-dtbncx+xml', - 'ngdat' => 'application/vnd.nokia.n-gage.data', - 'nlu' => 'application/vnd.neurolanguage.nlu', - 'nml' => 'application/vnd.enliven', - 'nnd' => 'application/vnd.noblenet-directory', - 'nns' => 'application/vnd.noblenet-sealer', - 'nnw' => 'application/vnd.noblenet-web', - 'npx' => 'image/vnd.net-fpx', - 'nsf' => 'application/vnd.lotus-notes', - 'oa2' => 'application/vnd.fujitsu.oasys2', - 'oa3' => 'application/vnd.fujitsu.oasys3', - 'oas' => 'application/vnd.fujitsu.oasys', - 'obd' => 'application/x-msbinder', - 'oda' => 'application/oda', - 'odb' => 'application/vnd.oasis.opendocument.database', - 'odc' => 'application/vnd.oasis.opendocument.chart', - 'odf' => 'application/vnd.oasis.opendocument.formula', - 'odft' => 'application/vnd.oasis.opendocument.formula-template', - 'odg' => 'application/vnd.oasis.opendocument.graphics', - 'odi' => 'application/vnd.oasis.opendocument.image', - 'odm' => 'application/vnd.oasis.opendocument.text-master', - 'odp' => 'application/vnd.oasis.opendocument.presentation', - 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', - 'odt' => 'application/vnd.oasis.opendocument.text', - 'oga' => 'audio/ogg', - 'ogg' => 'audio/ogg', - 'ogv' => 'video/ogg', - 'ogx' => 'application/ogg', - 'onepkg' => 'application/onenote', - 'onetmp' => 'application/onenote', - 'onetoc' => 'application/onenote', - 'onetoc2' => 'application/onenote', - 'opf' => 'application/oebps-package+xml', - 'oprc' => 'application/vnd.palm', - 'org' => 'application/vnd.lotus-organizer', - 'osf' => 'application/vnd.yamaha.openscoreformat', - 'osfpvg' => 'application/vnd.yamaha.openscoreformat.osfpvg+xml', - 'otc' => 'application/vnd.oasis.opendocument.chart-template', - 'otf' => 'application/x-font-otf', - 'otg' => 'application/vnd.oasis.opendocument.graphics-template', - 'oth' => 'application/vnd.oasis.opendocument.text-web', - 'oti' => 'application/vnd.oasis.opendocument.image-template', - 'otp' => 'application/vnd.oasis.opendocument.presentation-template', - 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template', - 'ott' => 'application/vnd.oasis.opendocument.text-template', - 'oxt' => 'application/vnd.openofficeorg.extension', - 'p' => 'text/x-pascal', - 'p10' => 'application/pkcs10', - 'p12' => 'application/x-pkcs12', - 'p7b' => 'application/x-pkcs7-certificates', - 'p7c' => 'application/pkcs7-mime', - 'p7m' => 'application/pkcs7-mime', - 'p7r' => 'application/x-pkcs7-certreqresp', - 'p7s' => 'application/pkcs7-signature', - 'p8' => 'application/pkcs8', - 'pas' => 'text/x-pascal', - 'paw' => 'application/vnd.pawaafile', - 'pbd' => 'application/vnd.powerbuilder6', - 'pbm' => 'image/x-portable-bitmap', - 'pcf' => 'application/x-font-pcf', - 'pcl' => 'application/vnd.hp-pcl', - 'pclxl' => 'application/vnd.hp-pclxl', - 'pct' => 'image/x-pict', - 'pcurl' => 'application/vnd.curl.pcurl', - 'pcx' => 'image/x-pcx', - 'pdb' => 'application/vnd.palm', - 'pdf' => 'application/pdf', - 'pfa' => 'application/x-font-type1', - 'pfb' => 'application/x-font-type1', - 'pfm' => 'application/x-font-type1', - 'pfr' => 'application/font-tdpfr', - 'pfx' => 'application/x-pkcs12', - 'pgm' => 'image/x-portable-graymap', - 'pgn' => 'application/x-chess-pgn', - 'pgp' => 'application/pgp-encrypted', - 'php' => 'text/x-php', - 'phps' => 'application/x-httpd-phps', - 'pic' => 'image/x-pict', - 'pkg' => 'application/octet-stream', - 'pki' => 'application/pkixcmp', - 'pkipath' => 'application/pkix-pkipath', - 'plb' => 'application/vnd.3gpp.pic-bw-large', - 'plc' => 'application/vnd.mobius.plc', - 'plf' => 'application/vnd.pocketlearn', - 'pls' => 'application/pls+xml', - 'pml' => 'application/vnd.ctc-posml', - 'png' => 'image/png', - 'pnm' => 'image/x-portable-anymap', - 'portpkg' => 'application/vnd.macports.portpkg', - 'pot' => 'application/vnd.ms-powerpoint', - 'potm' => 'application/vnd.ms-powerpoint.template.macroenabled.12', - 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template', - 'ppam' => 'application/vnd.ms-powerpoint.addin.macroenabled.12', - 'ppd' => 'application/vnd.cups-ppd', - 'ppm' => 'image/x-portable-pixmap', - 'pps' => 'application/vnd.ms-powerpoint', - 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroenabled.12', - 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', - 'ppt' => 'application/vnd.ms-powerpoint', - 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroenabled.12', - 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - 'pqa' => 'application/vnd.palm', - 'prc' => 'application/x-mobipocket-ebook', - 'pre' => 'application/vnd.lotus-freelance', - 'prf' => 'application/pics-rules', - 'ps' => 'application/postscript', - 'psb' => 'application/vnd.3gpp.pic-bw-small', - 'psd' => 'image/vnd.adobe.photoshop', - 'psf' => 'application/x-font-linux-psf', - 'pskcxml' => 'application/pskc+xml', - 'ptid' => 'application/vnd.pvi.ptid1', - 'pub' => 'application/x-mspublisher', - 'pvb' => 'application/vnd.3gpp.pic-bw-var', - 'pwn' => 'application/vnd.3m.post-it-notes', - 'pya' => 'audio/vnd.ms-playready.media.pya', - 'pyv' => 'video/vnd.ms-playready.media.pyv', - 'qam' => 'application/vnd.epson.quickanime', - 'qbo' => 'application/vnd.intu.qbo', - 'qfx' => 'application/vnd.intu.qfx', - 'qps' => 'application/vnd.publishare-delta-tree', - 'qt' => 'video/quicktime', - 'qwd' => 'application/vnd.quark.quarkxpress', - 'qwt' => 'application/vnd.quark.quarkxpress', - 'qxb' => 'application/vnd.quark.quarkxpress', - 'qxd' => 'application/vnd.quark.quarkxpress', - 'qxl' => 'application/vnd.quark.quarkxpress', - 'qxt' => 'application/vnd.quark.quarkxpress', - 'ra' => 'audio/x-pn-realaudio', - 'ram' => 'audio/x-pn-realaudio', - 'rar' => 'application/x-rar-compressed', - 'ras' => 'image/x-cmu-raster', - 'rb' => 'text/plain', - 'rcprofile' => 'application/vnd.ipunplugged.rcprofile', - 'rdf' => 'application/rdf+xml', - 'rdz' => 'application/vnd.data-vision.rdz', - 'rep' => 'application/vnd.businessobjects', - 'res' => 'application/x-dtbresource+xml', - 'resx' => 'text/xml', - 'rgb' => 'image/x-rgb', - 'rif' => 'application/reginfo+xml', - 'rip' => 'audio/vnd.rip', - 'rl' => 'application/resource-lists+xml', - 'rlc' => 'image/vnd.fujixerox.edmics-rlc', - 'rld' => 'application/resource-lists-diff+xml', - 'rm' => 'application/vnd.rn-realmedia', - 'rmi' => 'audio/midi', - 'rmp' => 'audio/x-pn-realaudio-plugin', - 'rms' => 'application/vnd.jcp.javame.midlet-rms', - 'rnc' => 'application/relax-ng-compact-syntax', - 'roff' => 'text/troff', - 'rp9' => 'application/vnd.cloanto.rp9', - 'rpss' => 'application/vnd.nokia.radio-presets', - 'rpst' => 'application/vnd.nokia.radio-preset', - 'rq' => 'application/sparql-query', - 'rs' => 'application/rls-services+xml', - 'rsd' => 'application/rsd+xml', - 'rss' => 'application/rss+xml', - 'rtf' => 'application/rtf', - 'rtx' => 'text/richtext', - 's' => 'text/x-asm', - 'saf' => 'application/vnd.yamaha.smaf-audio', - 'sbml' => 'application/sbml+xml', - 'sc' => 'application/vnd.ibm.secure-container', - 'scd' => 'application/x-msschedule', - 'scm' => 'application/vnd.lotus-screencam', - 'scq' => 'application/scvp-cv-request', - 'scs' => 'application/scvp-cv-response', - 'scurl' => 'text/vnd.curl.scurl', - 'sda' => 'application/vnd.stardivision.draw', - 'sdc' => 'application/vnd.stardivision.calc', - 'sdd' => 'application/vnd.stardivision.impress', - 'sdkd' => 'application/vnd.solent.sdkm+xml', - 'sdkm' => 'application/vnd.solent.sdkm+xml', - 'sdp' => 'application/sdp', - 'sdw' => 'application/vnd.stardivision.writer', - 'see' => 'application/vnd.seemail', - 'seed' => 'application/vnd.fdsn.seed', - 'sema' => 'application/vnd.sema', - 'semd' => 'application/vnd.semd', - 'semf' => 'application/vnd.semf', - 'ser' => 'application/java-serialized-object', - 'setpay' => 'application/set-payment-initiation', - 'setreg' => 'application/set-registration-initiation', - 'sfd-hdstx' => 'application/vnd.hydrostatix.sof-data', - 'sfs' => 'application/vnd.spotfire.sfs', - 'sgl' => 'application/vnd.stardivision.writer-global', - 'sgm' => 'text/sgml', - 'sgml' => 'text/sgml', - 'sh' => 'application/x-sh', - 'shar' => 'application/x-shar', - 'shf' => 'application/shf+xml', - 'sig' => 'application/pgp-signature', - 'silo' => 'model/mesh', - 'sis' => 'application/vnd.symbian.install', - 'sisx' => 'application/vnd.symbian.install', - 'sit' => 'application/x-stuffit', - 'sitx' => 'application/x-stuffitx', - 'skd' => 'application/vnd.koan', - 'skm' => 'application/vnd.koan', - 'skp' => 'application/vnd.koan', - 'skt' => 'application/vnd.koan', - 'sldm' => 'application/vnd.ms-powerpoint.slide.macroenabled.12', - 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide', - 'slt' => 'application/vnd.epson.salt', - 'sm' => 'application/vnd.stepmania.stepchart', - 'smf' => 'application/vnd.stardivision.math', - 'smi' => 'application/smil+xml', - 'smil' => 'application/smil+xml', - 'snd' => 'audio/basic', - 'snf' => 'application/x-font-snf', - 'so' => 'application/octet-stream', - 'spc' => 'application/x-pkcs7-certificates', - 'spf' => 'application/vnd.yamaha.smaf-phrase', - 'spl' => 'application/x-futuresplash', - 'spot' => 'text/vnd.in3d.spot', - 'spp' => 'application/scvp-vp-response', - 'spq' => 'application/scvp-vp-request', - 'spx' => 'audio/ogg', - 'src' => 'application/x-wais-source', - 'srt' => 'application/octet-stream', - 'sru' => 'application/sru+xml', - 'srx' => 'application/sparql-results+xml', - 'sse' => 'application/vnd.kodak-descriptor', - 'ssf' => 'application/vnd.epson.ssf', - 'ssml' => 'application/ssml+xml', - 'st' => 'application/vnd.sailingtracker.track', - 'stc' => 'application/vnd.sun.xml.calc.template', - 'std' => 'application/vnd.sun.xml.draw.template', - 'stf' => 'application/vnd.wt.stf', - 'sti' => 'application/vnd.sun.xml.impress.template', - 'stk' => 'application/hyperstudio', - 'stl' => 'application/vnd.ms-pki.stl', - 'str' => 'application/vnd.pg.format', - 'stw' => 'application/vnd.sun.xml.writer.template', - 'sub' => 'image/vnd.dvb.subtitle', - 'sus' => 'application/vnd.sus-calendar', - 'susp' => 'application/vnd.sus-calendar', - 'sv4cpio' => 'application/x-sv4cpio', - 'sv4crc' => 'application/x-sv4crc', - 'svc' => 'application/vnd.dvb.service', - 'svd' => 'application/vnd.svd', - 'svg' => 'image/svg+xml', - 'svgz' => 'image/svg+xml', - 'swa' => 'application/x-director', - 'swf' => 'application/x-shockwave-flash', - 'swi' => 'application/vnd.aristanetworks.swi', - 'sxc' => 'application/vnd.sun.xml.calc', - 'sxd' => 'application/vnd.sun.xml.draw', - 'sxg' => 'application/vnd.sun.xml.writer.global', - 'sxi' => 'application/vnd.sun.xml.impress', - 'sxm' => 'application/vnd.sun.xml.math', - 'sxw' => 'application/vnd.sun.xml.writer', - 't' => 'text/troff', - 'tao' => 'application/vnd.tao.intent-module-archive', - 'tar' => 'application/x-tar', - 'tcap' => 'application/vnd.3gpp2.tcap', - 'tcl' => 'application/x-tcl', - 'teacher' => 'application/vnd.smart.teacher', - 'tei' => 'application/tei+xml', - 'teicorpus' => 'application/tei+xml', - 'tex' => 'application/x-tex', - 'texi' => 'application/x-texinfo', - 'texinfo' => 'application/x-texinfo', - 'text' => 'text/plain', - 'tfi' => 'application/thraud+xml', - 'tfm' => 'application/x-tex-tfm', - 'thmx' => 'application/vnd.ms-officetheme', - 'tif' => 'image/tiff', - 'tiff' => 'image/tiff', - 'tmo' => 'application/vnd.tmobile-livetv', - 'torrent' => 'application/x-bittorrent', - 'tpl' => 'application/vnd.groove-tool-template', - 'tpt' => 'application/vnd.trid.tpt', - 'tr' => 'text/troff', - 'tra' => 'application/vnd.trueapp', - 'trm' => 'application/x-msterminal', - 'tsd' => 'application/timestamped-data', - 'tsv' => 'text/tab-separated-values', - 'ttc' => 'application/x-font-ttf', - 'ttf' => 'application/x-font-ttf', - 'ttl' => 'text/turtle', - 'twd' => 'application/vnd.simtech-mindmapper', - 'twds' => 'application/vnd.simtech-mindmapper', - 'txd' => 'application/vnd.genomatix.tuxedo', - 'txf' => 'application/vnd.mobius.txf', - 'txt' => 'text/plain', - 'u32' => 'application/x-authorware-bin', - 'udeb' => 'application/x-debian-package', - 'ufd' => 'application/vnd.ufdl', - 'ufdl' => 'application/vnd.ufdl', - 'umj' => 'application/vnd.umajin', - 'unityweb' => 'application/vnd.unity', - 'uoml' => 'application/vnd.uoml+xml', - 'uri' => 'text/uri-list', - 'uris' => 'text/uri-list', - 'urls' => 'text/uri-list', - 'ustar' => 'application/x-ustar', - 'utz' => 'application/vnd.uiq.theme', - 'uu' => 'text/x-uuencode', - 'uva' => 'audio/vnd.dece.audio', - 'uvd' => 'application/vnd.dece.data', - 'uvf' => 'application/vnd.dece.data', - 'uvg' => 'image/vnd.dece.graphic', - 'uvh' => 'video/vnd.dece.hd', - 'uvi' => 'image/vnd.dece.graphic', - 'uvm' => 'video/vnd.dece.mobile', - 'uvp' => 'video/vnd.dece.pd', - 'uvs' => 'video/vnd.dece.sd', - 'uvt' => 'application/vnd.dece.ttml+xml', - 'uvu' => 'video/vnd.uvvu.mp4', - 'uvv' => 'video/vnd.dece.video', - 'uvva' => 'audio/vnd.dece.audio', - 'uvvd' => 'application/vnd.dece.data', - 'uvvf' => 'application/vnd.dece.data', - 'uvvg' => 'image/vnd.dece.graphic', - 'uvvh' => 'video/vnd.dece.hd', - 'uvvi' => 'image/vnd.dece.graphic', - 'uvvm' => 'video/vnd.dece.mobile', - 'uvvp' => 'video/vnd.dece.pd', - 'uvvs' => 'video/vnd.dece.sd', - 'uvvt' => 'application/vnd.dece.ttml+xml', - 'uvvu' => 'video/vnd.uvvu.mp4', - 'uvvv' => 'video/vnd.dece.video', - 'uvvx' => 'application/vnd.dece.unspecified', - 'uvx' => 'application/vnd.dece.unspecified', - 'vcd' => 'application/x-cdlink', - 'vcf' => 'text/x-vcard', - 'vcg' => 'application/vnd.groove-vcard', - 'vcs' => 'text/x-vcalendar', - 'vcx' => 'application/vnd.vcx', - 'vis' => 'application/vnd.visionary', - 'viv' => 'video/vnd.vivo', - 'vor' => 'application/vnd.stardivision.writer', - 'vox' => 'application/x-authorware-bin', - 'vrml' => 'model/vrml', - 'vsd' => 'application/vnd.visio', - 'vsf' => 'application/vnd.vsf', - 'vss' => 'application/vnd.visio', - 'vst' => 'application/vnd.visio', - 'vsw' => 'application/vnd.visio', - 'vtu' => 'model/vnd.vtu', - 'vxml' => 'application/voicexml+xml', - 'w3d' => 'application/x-director', - 'wad' => 'application/x-doom', - 'wav' => 'audio/x-wav', - 'wax' => 'audio/x-ms-wax', - 'wbmp' => 'image/vnd.wap.wbmp', - 'wbs' => 'application/vnd.criticaltools.wbs+xml', - 'wbxml' => 'application/vnd.wap.wbxml', - 'wcm' => 'application/vnd.ms-works', - 'wdb' => 'application/vnd.ms-works', - 'weba' => 'audio/webm', - 'webm' => 'video/webm', - 'webp' => 'image/webp', - 'wg' => 'application/vnd.pmi.widget', - 'wgt' => 'application/widget', - 'wks' => 'application/vnd.ms-works', - 'wm' => 'video/x-ms-wm', - 'wma' => 'audio/x-ms-wma', - 'wmd' => 'application/x-ms-wmd', - 'wmf' => 'application/x-msmetafile', - 'wml' => 'text/vnd.wap.wml', - 'wmlc' => 'application/vnd.wap.wmlc', - 'wmls' => 'text/vnd.wap.wmlscript', - 'wmlsc' => 'application/vnd.wap.wmlscriptc', - 'wmv' => 'video/x-ms-wmv', - 'wmx' => 'video/x-ms-wmx', - 'wmz' => 'application/x-ms-wmz', - 'woff' => 'application/x-font-woff', - 'wpd' => 'application/vnd.wordperfect', - 'wpl' => 'application/vnd.ms-wpl', - 'wps' => 'application/vnd.ms-works', - 'wqd' => 'application/vnd.wqd', - 'wri' => 'application/x-mswrite', - 'wrl' => 'model/vrml', - 'wsdl' => 'application/wsdl+xml', - 'wspolicy' => 'application/wspolicy+xml', - 'wtb' => 'application/vnd.webturbo', - 'wvx' => 'video/x-ms-wvx', - 'x32' => 'application/x-authorware-bin', - 'x3d' => 'application/vnd.hzn-3d-crossword', - 'xap' => 'application/x-silverlight-app', - 'xar' => 'application/vnd.xara', - 'xbap' => 'application/x-ms-xbap', - 'xbd' => 'application/vnd.fujixerox.docuworks.binder', - 'xbm' => 'image/x-xbitmap', - 'xdf' => 'application/xcap-diff+xml', - 'xdm' => 'application/vnd.syncml.dm+xml', - 'xdp' => 'application/vnd.adobe.xdp+xml', - 'xdssc' => 'application/dssc+xml', - 'xdw' => 'application/vnd.fujixerox.docuworks', - 'xenc' => 'application/xenc+xml', - 'xer' => 'application/patch-ops-error+xml', - 'xfdf' => 'application/vnd.adobe.xfdf', - 'xfdl' => 'application/vnd.xfdl', - 'xht' => 'application/xhtml+xml', - 'xhtml' => 'application/xhtml+xml', - 'xhvml' => 'application/xv+xml', - 'xif' => 'image/vnd.xiff', - 'xla' => 'application/vnd.ms-excel', - 'xlam' => 'application/vnd.ms-excel.addin.macroenabled.12', - 'xlc' => 'application/vnd.ms-excel', - 'xlm' => 'application/vnd.ms-excel', - 'xls' => 'application/vnd.ms-excel', - 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroenabled.12', - 'xlsm' => 'application/vnd.ms-excel.sheet.macroenabled.12', - 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'xlt' => 'application/vnd.ms-excel', - 'xltm' => 'application/vnd.ms-excel.template.macroenabled.12', - 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', - 'xlw' => 'application/vnd.ms-excel', - 'xml' => 'application/xml', - 'xo' => 'application/vnd.olpc-sugar', - 'xop' => 'application/xop+xml', - 'xpi' => 'application/x-xpinstall', - 'xpm' => 'image/x-xpixmap', - 'xpr' => 'application/vnd.is-xpr', - 'xps' => 'application/vnd.ms-xpsdocument', - 'xpw' => 'application/vnd.intercon.formnet', - 'xpx' => 'application/vnd.intercon.formnet', - 'xsl' => 'application/xml', - 'xslt' => 'application/xslt+xml', - 'xsm' => 'application/vnd.syncml+xml', - 'xspf' => 'application/xspf+xml', - 'xul' => 'application/vnd.mozilla.xul+xml', - 'xvm' => 'application/xv+xml', - 'xvml' => 'application/xv+xml', - 'xwd' => 'image/x-xwindowdump', - 'xyz' => 'chemical/x-xyz', - 'yaml' => 'text/yaml', - 'yang' => 'application/yang', - 'yin' => 'application/yin+xml', - 'yml' => 'text/yaml', - 'zaz' => 'application/vnd.zzazz.deck+xml', - 'zip' => 'application/zip', - 'zir' => 'application/vnd.zul', - 'zirz' => 'application/vnd.zul', - 'zmm' => 'application/vnd.handheld-entertainment+xml' - ]; - - /** - * Get a singleton instance of the class - * - * @return self - * @codeCoverageIgnore - */ - public static function getInstance() - { - if (!self::$instance) { - self::$instance = new self(); - } - - return self::$instance; - } - - /** - * Get a mimetype value from a file extension - * - * @param string $extension File extension - * - * @return string|null - */ - public function fromExtension($extension) - { - $extension = strtolower($extension); - - return isset($this->mimetypes[$extension]) ? $this->mimetypes[$extension] : null; - } - - /** - * Get a mimetype from a filename - * - * @param string $filename Filename to generate a mimetype from - * - * @return string|null - */ - public function fromFilename($filename) - { - return $this->fromExtension(pathinfo($filename, PATHINFO_EXTENSION)); - } -} diff --git a/mayor-orig/www/include/share/facebook/GraphNodes/Birthday.php b/mayor-orig/www/include/share/facebook/GraphNodes/Birthday.php deleted file mode 100644 index 4338b65e..00000000 --- a/mayor-orig/www/include/share/facebook/GraphNodes/Birthday.php +++ /dev/null @@ -1,85 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\GraphNodes; - -use DateTime; - -/** - * Birthday object to handle various Graph return formats - * - * @package Facebook - */ -class Birthday extends DateTime -{ - /** - * @var bool - */ - private $hasDate = false; - - /** - * @var bool - */ - private $hasYear = false; - - /** - * Parses Graph birthday format to set indication flags, possible values: - * - * MM/DD/YYYY - * MM/DD - * YYYY - * - * @link https://developers.facebook.com/docs/graph-api/reference/user - * - * @param string $date - */ - public function __construct($date) - { - $parts = explode('/', $date); - - $this->hasYear = count($parts) === 3 || count($parts) === 1; - $this->hasDate = count($parts) === 3 || count($parts) === 2; - - parent::__construct($date); - } - - /** - * Returns whether date object contains birth day and month - * - * @return bool - */ - public function hasDate() - { - return $this->hasDate; - } - - /** - * Returns whether date object contains birth year - * - * @return bool - */ - public function hasYear() - { - return $this->hasYear; - } -} diff --git a/mayor-orig/www/include/share/facebook/GraphNodes/Collection.php b/mayor-orig/www/include/share/facebook/GraphNodes/Collection.php deleted file mode 100644 index 424b7cf3..00000000 --- a/mayor-orig/www/include/share/facebook/GraphNodes/Collection.php +++ /dev/null @@ -1,242 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\GraphNodes; - -/** - * Class Collection - * - * Modified version of Collection in "illuminate/support" by Taylor Otwell - * - * @package Facebook - */ - -use ArrayAccess; -use ArrayIterator; -use Countable; -use IteratorAggregate; - -class Collection implements ArrayAccess, Countable, IteratorAggregate -{ - /** - * The items contained in the collection. - * - * @var array - */ - protected $items = []; - - /** - * Create a new collection. - * - * @param array $items - */ - public function __construct(array $items = []) - { - $this->items = $items; - } - - /** - * Gets the value of a field from the Graph node. - * - * @param string $name The field to retrieve. - * @param mixed $default The default to return if the field doesn't exist. - * - * @return mixed - */ - public function getField($name, $default = null) - { - if (isset($this->items[$name])) { - return $this->items[$name]; - } - - return $default; - } - - /** - * Gets the value of the named property for this graph object. - * - * @param string $name The property to retrieve. - * @param mixed $default The default to return if the property doesn't exist. - * - * @return mixed - * - * @deprecated 5.0.0 getProperty() has been renamed to getField() - * @todo v6: Remove this method - */ - public function getProperty($name, $default = null) - { - return $this->getField($name, $default); - } - - /** - * Returns a list of all fields set on the object. - * - * @return array - */ - public function getFieldNames() - { - return array_keys($this->items); - } - - /** - * Returns a list of all properties set on the object. - * - * @return array - * - * @deprecated 5.0.0 getPropertyNames() has been renamed to getFieldNames() - * @todo v6: Remove this method - */ - public function getPropertyNames() - { - return $this->getFieldNames(); - } - - /** - * Get all of the items in the collection. - * - * @return array - */ - public function all() - { - return $this->items; - } - - /** - * Get the collection of items as a plain array. - * - * @return array - */ - public function asArray() - { - return array_map(function ($value) { - return $value instanceof Collection ? $value->asArray() : $value; - }, $this->items); - } - - /** - * Run a map over each of the items. - * - * @param \Closure $callback - * - * @return static - */ - public function map(\Closure $callback) - { - return new static(array_map($callback, $this->items, array_keys($this->items))); - } - - /** - * Get the collection of items as JSON. - * - * @param int $options - * - * @return string - */ - public function asJson($options = 0) - { - return json_encode($this->asArray(), $options); - } - - /** - * Count the number of items in the collection. - * - * @return int - */ - public function count() - { - return count($this->items); - } - - /** - * Get an iterator for the items. - * - * @return ArrayIterator - */ - public function getIterator() - { - return new ArrayIterator($this->items); - } - - /** - * Determine if an item exists at an offset. - * - * @param mixed $key - * - * @return bool - */ - public function offsetExists($key) - { - return array_key_exists($key, $this->items); - } - - /** - * Get an item at a given offset. - * - * @param mixed $key - * - * @return mixed - */ - public function offsetGet($key) - { - return $this->items[$key]; - } - - /** - * Set the item at a given offset. - * - * @param mixed $key - * @param mixed $value - * - * @return void - */ - public function offsetSet($key, $value) - { - if (is_null($key)) { - $this->items[] = $value; - } else { - $this->items[$key] = $value; - } - } - - /** - * Unset the item at a given offset. - * - * @param string $key - * - * @return void - */ - public function offsetUnset($key) - { - unset($this->items[$key]); - } - - /** - * Convert the collection to its string representation. - * - * @return string - */ - public function __toString() - { - return $this->asJson(); - } -} diff --git a/mayor-orig/www/include/share/facebook/GraphNodes/GraphAchievement.php b/mayor-orig/www/include/share/facebook/GraphNodes/GraphAchievement.php deleted file mode 100644 index 31508ee4..00000000 --- a/mayor-orig/www/include/share/facebook/GraphNodes/GraphAchievement.php +++ /dev/null @@ -1,112 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\GraphNodes; - -/** - * Class GraphAchievement - * - * @package Facebook - */ -class GraphAchievement extends GraphNode -{ - /** - * @var array Maps object key names to Graph object types. - */ - protected static $graphObjectMap = [ - 'from' => '\Facebook\GraphNodes\GraphUser', - 'application' => '\Facebook\GraphNodes\GraphApplication', - ]; - - /** - * Returns the ID for the achievement. - * - * @return string|null - */ - public function getId() - { - return $this->getField('id'); - } - - /** - * Returns the user who achieved this. - * - * @return GraphUser|null - */ - public function getFrom() - { - return $this->getField('from'); - } - - /** - * Returns the time at which this was achieved. - * - * @return \DateTime|null - */ - public function getPublishTime() - { - return $this->getField('publish_time'); - } - - /** - * Returns the app in which the user achieved this. - * - * @return GraphApplication|null - */ - public function getApplication() - { - return $this->getField('application'); - } - - /** - * Returns information about the achievement type this instance is connected with. - * - * @return array|null - */ - public function getData() - { - return $this->getField('data'); - } - - /** - * Returns the type of achievement. - * - * @see https://developers.facebook.com/docs/graph-api/reference/achievement - * - * @return string - */ - public function getType() - { - return 'game.achievement'; - } - - /** - * Indicates whether gaining the achievement published a feed story for the user. - * - * @return boolean|null - */ - public function isNoFeedStory() - { - return $this->getField('no_feed_story'); - } -} diff --git a/mayor-orig/www/include/share/facebook/GraphNodes/GraphAlbum.php b/mayor-orig/www/include/share/facebook/GraphNodes/GraphAlbum.php deleted file mode 100644 index 52f19b51..00000000 --- a/mayor-orig/www/include/share/facebook/GraphNodes/GraphAlbum.php +++ /dev/null @@ -1,183 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\GraphNodes; - -/** - * Class GraphAlbum - * - * @package Facebook - */ - -class GraphAlbum extends GraphNode -{ - /** - * @var array Maps object key names to Graph object types. - */ - protected static $graphObjectMap = [ - 'from' => '\Facebook\GraphNodes\GraphUser', - 'place' => '\Facebook\GraphNodes\GraphPage', - ]; - - /** - * Returns the ID for the album. - * - * @return string|null - */ - public function getId() - { - return $this->getField('id'); - } - - /** - * Returns whether the viewer can upload photos to this album. - * - * @return boolean|null - */ - public function getCanUpload() - { - return $this->getField('can_upload'); - } - - /** - * Returns the number of photos in this album. - * - * @return int|null - */ - public function getCount() - { - return $this->getField('count'); - } - - /** - * Returns the ID of the album's cover photo. - * - * @return string|null - */ - public function getCoverPhoto() - { - return $this->getField('cover_photo'); - } - - /** - * Returns the time the album was initially created. - * - * @return \DateTime|null - */ - public function getCreatedTime() - { - return $this->getField('created_time'); - } - - /** - * Returns the time the album was updated. - * - * @return \DateTime|null - */ - public function getUpdatedTime() - { - return $this->getField('updated_time'); - } - - /** - * Returns the description of the album. - * - * @return string|null - */ - public function getDescription() - { - return $this->getField('description'); - } - - /** - * Returns profile that created the album. - * - * @return GraphUser|null - */ - public function getFrom() - { - return $this->getField('from'); - } - - /** - * Returns profile that created the album. - * - * @return GraphPage|null - */ - public function getPlace() - { - return $this->getField('place'); - } - - /** - * Returns a link to this album on Facebook. - * - * @return string|null - */ - public function getLink() - { - return $this->getField('link'); - } - - /** - * Returns the textual location of the album. - * - * @return string|null - */ - public function getLocation() - { - return $this->getField('location'); - } - - /** - * Returns the title of the album. - * - * @return string|null - */ - public function getName() - { - return $this->getField('name'); - } - - /** - * Returns the privacy settings for the album. - * - * @return string|null - */ - public function getPrivacy() - { - return $this->getField('privacy'); - } - - /** - * Returns the type of the album. - * - * enum{ profile, mobile, wall, normal, album } - * - * @return string|null - */ - public function getType() - { - return $this->getField('type'); - } -} diff --git a/mayor-orig/www/include/share/facebook/GraphNodes/GraphApplication.php b/mayor-orig/www/include/share/facebook/GraphNodes/GraphApplication.php deleted file mode 100644 index aa07c825..00000000 --- a/mayor-orig/www/include/share/facebook/GraphNodes/GraphApplication.php +++ /dev/null @@ -1,43 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\GraphNodes; - -/** - * Class GraphApplication - * - * @package Facebook - */ - -class GraphApplication extends GraphNode -{ - /** - * Returns the ID for the application. - * - * @return string|null - */ - public function getId() - { - return $this->getField('id'); - } -} diff --git a/mayor-orig/www/include/share/facebook/GraphNodes/GraphCoverPhoto.php b/mayor-orig/www/include/share/facebook/GraphNodes/GraphCoverPhoto.php deleted file mode 100644 index 824275bb..00000000 --- a/mayor-orig/www/include/share/facebook/GraphNodes/GraphCoverPhoto.php +++ /dev/null @@ -1,72 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\GraphNodes; - -/** - * Class GraphCoverPhoto - * - * @package Facebook - */ -class GraphCoverPhoto extends GraphNode -{ - /** - * Returns the id of cover if it exists - * - * @return int|null - */ - public function getId() - { - return $this->getField('id'); - } - - /** - * Returns the source of cover if it exists - * - * @return string|null - */ - public function getSource() - { - return $this->getField('source'); - } - - /** - * Returns the offset_x of cover if it exists - * - * @return int|null - */ - public function getOffsetX() - { - return $this->getField('offset_x'); - } - - /** - * Returns the offset_y of cover if it exists - * - * @return int|null - */ - public function getOffsetY() - { - return $this->getField('offset_y'); - } -} diff --git a/mayor-orig/www/include/share/facebook/GraphNodes/GraphEdge.php b/mayor-orig/www/include/share/facebook/GraphNodes/GraphEdge.php deleted file mode 100644 index f6f4970c..00000000 --- a/mayor-orig/www/include/share/facebook/GraphNodes/GraphEdge.php +++ /dev/null @@ -1,252 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\GraphNodes; - -use Facebook\FacebookRequest; -use Facebook\Url\FacebookUrlManipulator; -use Facebook\Exceptions\FacebookSDKException; - -/** - * Class GraphEdge - * - * @package Facebook - */ -class GraphEdge extends Collection -{ - /** - * @var FacebookRequest The original request that generated this data. - */ - protected $request; - - /** - * @var array An array of Graph meta data like pagination, etc. - */ - protected $metaData = []; - - /** - * @var string|null The parent Graph edge endpoint that generated the list. - */ - protected $parentEdgeEndpoint; - - /** - * @var string|null The subclass of the child GraphNode's. - */ - protected $subclassName; - - /** - * Init this collection of GraphNode's. - * - * @param FacebookRequest $request The original request that generated this data. - * @param array $data An array of GraphNode's. - * @param array $metaData An array of Graph meta data like pagination, etc. - * @param string|null $parentEdgeEndpoint The parent Graph edge endpoint that generated the list. - * @param string|null $subclassName The subclass of the child GraphNode's. - */ - public function __construct(FacebookRequest $request, array $data = [], array $metaData = [], $parentEdgeEndpoint = null, $subclassName = null) - { - $this->request = $request; - $this->metaData = $metaData; - $this->parentEdgeEndpoint = $parentEdgeEndpoint; - $this->subclassName = $subclassName; - - parent::__construct($data); - } - - /** - * Gets the parent Graph edge endpoint that generated the list. - * - * @return string|null - */ - public function getParentGraphEdge() - { - return $this->parentEdgeEndpoint; - } - - /** - * Gets the subclass name that the child GraphNode's are cast as. - * - * @return string|null - */ - public function getSubClassName() - { - return $this->subclassName; - } - - /** - * Returns the raw meta data associated with this GraphEdge. - * - * @return array - */ - public function getMetaData() - { - return $this->metaData; - } - - /** - * Returns the next cursor if it exists. - * - * @return string|null - */ - public function getNextCursor() - { - return $this->getCursor('after'); - } - - /** - * Returns the previous cursor if it exists. - * - * @return string|null - */ - public function getPreviousCursor() - { - return $this->getCursor('before'); - } - - /** - * Returns the cursor for a specific direction if it exists. - * - * @param string $direction The direction of the page: after|before - * - * @return string|null - */ - public function getCursor($direction) - { - if (isset($this->metaData['paging']['cursors'][$direction])) { - return $this->metaData['paging']['cursors'][$direction]; - } - - return null; - } - - /** - * Generates a pagination URL based on a cursor. - * - * @param string $direction The direction of the page: next|previous - * - * @return string|null - * - * @throws FacebookSDKException - */ - public function getPaginationUrl($direction) - { - $this->validateForPagination(); - - // Do we have a paging URL? - if (!isset($this->metaData['paging'][$direction])) { - return null; - } - - $pageUrl = $this->metaData['paging'][$direction]; - - return FacebookUrlManipulator::baseGraphUrlEndpoint($pageUrl); - } - - /** - * Validates whether or not we can paginate on this request. - * - * @throws FacebookSDKException - */ - public function validateForPagination() - { - if ($this->request->getMethod() !== 'GET') { - throw new FacebookSDKException('You can only paginate on a GET request.', 720); - } - } - - /** - * Gets the request object needed to make a next|previous page request. - * - * @param string $direction The direction of the page: next|previous - * - * @return FacebookRequest|null - * - * @throws FacebookSDKException - */ - public function getPaginationRequest($direction) - { - $pageUrl = $this->getPaginationUrl($direction); - if (!$pageUrl) { - return null; - } - - $newRequest = clone $this->request; - $newRequest->setEndpoint($pageUrl); - - return $newRequest; - } - - /** - * Gets the request object needed to make a "next" page request. - * - * @return FacebookRequest|null - * - * @throws FacebookSDKException - */ - public function getNextPageRequest() - { - return $this->getPaginationRequest('next'); - } - - /** - * Gets the request object needed to make a "previous" page request. - * - * @return FacebookRequest|null - * - * @throws FacebookSDKException - */ - public function getPreviousPageRequest() - { - return $this->getPaginationRequest('previous'); - } - - /** - * The total number of results according to Graph if it exists. - * - * This will be returned if the summary=true modifier is present in the request. - * - * @return int|null - */ - public function getTotalCount() - { - if (isset($this->metaData['summary']['total_count'])) { - return $this->metaData['summary']['total_count']; - } - - return null; - } - - /** - * @inheritDoc - */ - public function map(\Closure $callback) - { - return new static( - $this->request, - array_map($callback, $this->items, array_keys($this->items)), - $this->metaData, - $this->parentEdgeEndpoint, - $this->subclassName - ); - } -} diff --git a/mayor-orig/www/include/share/facebook/GraphNodes/GraphEvent.php b/mayor-orig/www/include/share/facebook/GraphNodes/GraphEvent.php deleted file mode 100644 index a470d89f..00000000 --- a/mayor-orig/www/include/share/facebook/GraphNodes/GraphEvent.php +++ /dev/null @@ -1,242 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\GraphNodes; - -/** - * Class GraphEvent - * - * @package Facebook - */ -class GraphEvent extends GraphNode -{ - /** - * @var array Maps object key names to GraphNode types. - */ - protected static $graphObjectMap = [ - 'cover' => '\Facebook\GraphNodes\GraphCoverPhoto', - 'place' => '\Facebook\GraphNodes\GraphPage', - 'picture' => '\Facebook\GraphNodes\GraphPicture', - 'parent_group' => '\Facebook\GraphNodes\GraphGroup', - ]; - - /** - * Returns the `id` (The event ID) as string if present. - * - * @return string|null - */ - public function getId() - { - return $this->getField('id'); - } - - /** - * Returns the `cover` (Cover picture) as GraphCoverPhoto if present. - * - * @return GraphCoverPhoto|null - */ - public function getCover() - { - return $this->getField('cover'); - } - - /** - * Returns the `description` (Long-form description) as string if present. - * - * @return string|null - */ - public function getDescription() - { - return $this->getField('description'); - } - - /** - * Returns the `end_time` (End time, if one has been set) as DateTime if present. - * - * @return \DateTime|null - */ - public function getEndTime() - { - return $this->getField('end_time'); - } - - /** - * Returns the `is_date_only` (Whether the event only has a date specified, but no time) as bool if present. - * - * @return bool|null - */ - public function getIsDateOnly() - { - return $this->getField('is_date_only'); - } - - /** - * Returns the `name` (Event name) as string if present. - * - * @return string|null - */ - public function getName() - { - return $this->getField('name'); - } - - /** - * Returns the `owner` (The profile that created the event) as GraphNode if present. - * - * @return GraphNode|null - */ - public function getOwner() - { - return $this->getField('owner'); - } - - /** - * Returns the `parent_group` (The group the event belongs to) as GraphGroup if present. - * - * @return GraphGroup|null - */ - public function getParentGroup() - { - return $this->getField('parent_group'); - } - - /** - * Returns the `place` (Event Place information) as GraphPage if present. - * - * @return GraphPage|null - */ - public function getPlace() - { - return $this->getField('place'); - } - - /** - * Returns the `privacy` (Who can see the event) as string if present. - * - * @return string|null - */ - public function getPrivacy() - { - return $this->getField('privacy'); - } - - /** - * Returns the `start_time` (Start time) as DateTime if present. - * - * @return \DateTime|null - */ - public function getStartTime() - { - return $this->getField('start_time'); - } - - /** - * Returns the `ticket_uri` (The link users can visit to buy a ticket to this event) as string if present. - * - * @return string|null - */ - public function getTicketUri() - { - return $this->getField('ticket_uri'); - } - - /** - * Returns the `timezone` (Timezone) as string if present. - * - * @return string|null - */ - public function getTimezone() - { - return $this->getField('timezone'); - } - - /** - * Returns the `updated_time` (Last update time) as DateTime if present. - * - * @return \DateTime|null - */ - public function getUpdatedTime() - { - return $this->getField('updated_time'); - } - - /** - * Returns the `picture` (Event picture) as GraphPicture if present. - * - * @return GraphPicture|null - */ - public function getPicture() - { - return $this->getField('picture'); - } - - /** - * Returns the `attending_count` (Number of people attending the event) as int if present. - * - * @return int|null - */ - public function getAttendingCount() - { - return $this->getField('attending_count'); - } - - /** - * Returns the `declined_count` (Number of people who declined the event) as int if present. - * - * @return int|null - */ - public function getDeclinedCount() - { - return $this->getField('declined_count'); - } - - /** - * Returns the `maybe_count` (Number of people who maybe going to the event) as int if present. - * - * @return int|null - */ - public function getMaybeCount() - { - return $this->getField('maybe_count'); - } - - /** - * Returns the `noreply_count` (Number of people who did not reply to the event) as int if present. - * - * @return int|null - */ - public function getNoreplyCount() - { - return $this->getField('noreply_count'); - } - - /** - * Returns the `invited_count` (Number of people invited to the event) as int if present. - * - * @return int|null - */ - public function getInvitedCount() - { - return $this->getField('invited_count'); - } -} diff --git a/mayor-orig/www/include/share/facebook/GraphNodes/GraphGroup.php b/mayor-orig/www/include/share/facebook/GraphNodes/GraphGroup.php deleted file mode 100644 index 6217bd4d..00000000 --- a/mayor-orig/www/include/share/facebook/GraphNodes/GraphGroup.php +++ /dev/null @@ -1,170 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\GraphNodes; - -/** - * Class GraphGroup - * - * @package Facebook - */ -class GraphGroup extends GraphNode -{ - /** - * @var array Maps object key names to GraphNode types. - */ - protected static $graphObjectMap = [ - 'cover' => '\Facebook\GraphNodes\GraphCoverPhoto', - 'venue' => '\Facebook\GraphNodes\GraphLocation', - ]; - - /** - * Returns the `id` (The Group ID) as string if present. - * - * @return string|null - */ - public function getId() - { - return $this->getField('id'); - } - - /** - * Returns the `cover` (The cover photo of the Group) as GraphCoverPhoto if present. - * - * @return GraphCoverPhoto|null - */ - public function getCover() - { - return $this->getField('cover'); - } - - /** - * Returns the `description` (A brief description of the Group) as string if present. - * - * @return string|null - */ - public function getDescription() - { - return $this->getField('description'); - } - - /** - * Returns the `email` (The email address to upload content to the Group. Only current members of the Group can use this) as string if present. - * - * @return string|null - */ - public function getEmail() - { - return $this->getField('email'); - } - - /** - * Returns the `icon` (The URL for the Group's icon) as string if present. - * - * @return string|null - */ - public function getIcon() - { - return $this->getField('icon'); - } - - /** - * Returns the `link` (The Group's website) as string if present. - * - * @return string|null - */ - public function getLink() - { - return $this->getField('link'); - } - - /** - * Returns the `name` (The name of the Group) as string if present. - * - * @return string|null - */ - public function getName() - { - return $this->getField('name'); - } - - /** - * Returns the `member_request_count` (Number of people asking to join the group.) as int if present. - * - * @return int|null - */ - public function getMemberRequestCount() - { - return $this->getField('member_request_count'); - } - - /** - * Returns the `owner` (The profile that created this Group) as GraphNode if present. - * - * @return GraphNode|null - */ - public function getOwner() - { - return $this->getField('owner'); - } - - /** - * Returns the `parent` (The parent Group of this Group, if it exists) as GraphNode if present. - * - * @return GraphNode|null - */ - public function getParent() - { - return $this->getField('parent'); - } - - /** - * Returns the `privacy` (The privacy setting of the Group) as string if present. - * - * @return string|null - */ - public function getPrivacy() - { - return $this->getField('privacy'); - } - - /** - * Returns the `updated_time` (The last time the Group was updated (this includes changes in the Group's properties and changes in posts and comments if user can see them)) as \DateTime if present. - * - * @return \DateTime|null - */ - public function getUpdatedTime() - { - return $this->getField('updated_time'); - } - - /** - * Returns the `venue` (The location for the Group) as GraphLocation if present. - * - * @return GraphLocation|null - */ - public function getVenue() - { - return $this->getField('venue'); - } -} diff --git a/mayor-orig/www/include/share/facebook/GraphNodes/GraphList.php b/mayor-orig/www/include/share/facebook/GraphNodes/GraphList.php deleted file mode 100644 index 3dfbd497..00000000 --- a/mayor-orig/www/include/share/facebook/GraphNodes/GraphList.php +++ /dev/null @@ -1,36 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\GraphNodes; - -/** - * Class GraphList - * - * @package Facebook - * - * @deprecated 5.0.0 GraphList has been renamed to GraphEdge - * @todo v6: Remove this class - */ -class GraphList extends GraphEdge -{ -} diff --git a/mayor-orig/www/include/share/facebook/GraphNodes/GraphLocation.php b/mayor-orig/www/include/share/facebook/GraphNodes/GraphLocation.php deleted file mode 100644 index 29215aa7..00000000 --- a/mayor-orig/www/include/share/facebook/GraphNodes/GraphLocation.php +++ /dev/null @@ -1,102 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\GraphNodes; - -/** - * Class GraphLocation - * - * @package Facebook - */ -class GraphLocation extends GraphNode -{ - /** - * Returns the street component of the location - * - * @return string|null - */ - public function getStreet() - { - return $this->getField('street'); - } - - /** - * Returns the city component of the location - * - * @return string|null - */ - public function getCity() - { - return $this->getField('city'); - } - - /** - * Returns the state component of the location - * - * @return string|null - */ - public function getState() - { - return $this->getField('state'); - } - - /** - * Returns the country component of the location - * - * @return string|null - */ - public function getCountry() - { - return $this->getField('country'); - } - - /** - * Returns the zipcode component of the location - * - * @return string|null - */ - public function getZip() - { - return $this->getField('zip'); - } - - /** - * Returns the latitude component of the location - * - * @return float|null - */ - public function getLatitude() - { - return $this->getField('latitude'); - } - - /** - * Returns the street component of the location - * - * @return float|null - */ - public function getLongitude() - { - return $this->getField('longitude'); - } -} diff --git a/mayor-orig/www/include/share/facebook/GraphNodes/GraphNode.php b/mayor-orig/www/include/share/facebook/GraphNodes/GraphNode.php deleted file mode 100644 index a81c47b7..00000000 --- a/mayor-orig/www/include/share/facebook/GraphNodes/GraphNode.php +++ /dev/null @@ -1,198 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\GraphNodes; - -/** - * Class GraphNode - * - * @package Facebook - */ -class GraphNode extends Collection -{ - /** - * @var array Maps object key names to Graph object types. - */ - protected static $graphObjectMap = []; - - /** - * Init this Graph object. - * - * @param array $data - */ - public function __construct(array $data = []) - { - parent::__construct($this->castItems($data)); - } - - /** - * Iterates over an array and detects the types each node - * should be cast to and returns all the items as an array. - * - * @TODO Add auto-casting to AccessToken entities. - * - * @param array $data The array to iterate over. - * - * @return array - */ - public function castItems(array $data) - { - $items = []; - - foreach ($data as $k => $v) { - if ($this->shouldCastAsDateTime($k) - && (is_numeric($v) - || $this->isIso8601DateString($v)) - ) { - $items[$k] = $this->castToDateTime($v); - } elseif ($k === 'birthday') { - $items[$k] = $this->castToBirthday($v); - } else { - $items[$k] = $v; - } - } - - return $items; - } - - /** - * Uncasts any auto-casted datatypes. - * Basically the reverse of castItems(). - * - * @return array - */ - public function uncastItems() - { - $items = $this->asArray(); - - return array_map(function ($v) { - if ($v instanceof \DateTime) { - return $v->format(\DateTime::ISO8601); - } - - return $v; - }, $items); - } - - /** - * Get the collection of items as JSON. - * - * @param int $options - * - * @return string - */ - public function asJson($options = 0) - { - return json_encode($this->uncastItems(), $options); - } - - /** - * Detects an ISO 8601 formatted string. - * - * @param string $string - * - * @return boolean - * - * @see https://developers.facebook.com/docs/graph-api/using-graph-api/#readmodifiers - * @see http://www.cl.cam.ac.uk/~mgk25/iso-time.html - * @see http://en.wikipedia.org/wiki/ISO_8601 - */ - public function isIso8601DateString($string) - { - // This insane regex was yoinked from here: - // http://www.pelagodesign.com/blog/2009/05/20/iso-8601-date-validation-that-doesnt-suck/ - // ...and I'm all like: - // http://thecodinglove.com/post/95378251969/when-code-works-and-i-dont-know-why - $crazyInsaneRegexThatSomehowDetectsIso8601 = '/^([\+-]?\d{4}(?!\d{2}\b))' - . '((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?' - . '|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d' - . '|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])' - . '((:?)[0-5]\d)?|24\:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d' - . '([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/'; - - return preg_match($crazyInsaneRegexThatSomehowDetectsIso8601, $string) === 1; - } - - /** - * Determines if a value from Graph should be cast to DateTime. - * - * @param string $key - * - * @return boolean - */ - public function shouldCastAsDateTime($key) - { - return in_array($key, [ - 'created_time', - 'updated_time', - 'start_time', - 'end_time', - 'backdated_time', - 'issued_at', - 'expires_at', - 'publish_time', - 'joined' - ], true); - } - - /** - * Casts a date value from Graph to DateTime. - * - * @param int|string $value - * - * @return \DateTime - */ - public function castToDateTime($value) - { - if (is_int($value)) { - $dt = new \DateTime(); - $dt->setTimestamp($value); - } else { - $dt = new \DateTime($value); - } - - return $dt; - } - - /** - * Casts a birthday value from Graph to Birthday - * - * @param string $value - * - * @return Birthday - */ - public function castToBirthday($value) - { - return new Birthday($value); - } - - /** - * Getter for $graphObjectMap. - * - * @return array - */ - public static function getObjectMap() - { - return static::$graphObjectMap; - } -} diff --git a/mayor-orig/www/include/share/facebook/GraphNodes/GraphNodeFactory.php b/mayor-orig/www/include/share/facebook/GraphNodes/GraphNodeFactory.php deleted file mode 100644 index 6a370919..00000000 --- a/mayor-orig/www/include/share/facebook/GraphNodes/GraphNodeFactory.php +++ /dev/null @@ -1,392 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\GraphNodes; - -use Facebook\FacebookResponse; -use Facebook\Exceptions\FacebookSDKException; - -/** - * Class GraphNodeFactory - * - * @package Facebook - * - * ## Assumptions ## - * GraphEdge - is ALWAYS a numeric array - * GraphEdge - is ALWAYS an array of GraphNode types - * GraphNode - is ALWAYS an associative array - * GraphNode - MAY contain GraphNode's "recurrable" - * GraphNode - MAY contain GraphEdge's "recurrable" - * GraphNode - MAY contain DateTime's "primitives" - * GraphNode - MAY contain string's "primitives" - */ -class GraphNodeFactory -{ - /** - * @const string The base graph object class. - */ - const BASE_GRAPH_NODE_CLASS = '\Facebook\GraphNodes\GraphNode'; - - /** - * @const string The base graph edge class. - */ - const BASE_GRAPH_EDGE_CLASS = '\Facebook\GraphNodes\GraphEdge'; - - /** - * @const string The graph object prefix. - */ - const BASE_GRAPH_OBJECT_PREFIX = '\Facebook\GraphNodes\\'; - - /** - * @var FacebookResponse The response entity from Graph. - */ - protected $response; - - /** - * @var array The decoded body of the FacebookResponse entity from Graph. - */ - protected $decodedBody; - - /** - * Init this Graph object. - * - * @param FacebookResponse $response The response entity from Graph. - */ - public function __construct(FacebookResponse $response) - { - $this->response = $response; - $this->decodedBody = $response->getDecodedBody(); - } - - /** - * Tries to convert a FacebookResponse entity into a GraphNode. - * - * @param string|null $subclassName The GraphNode sub class to cast to. - * - * @return GraphNode - * - * @throws FacebookSDKException - */ - public function makeGraphNode($subclassName = null) - { - $this->validateResponseAsArray(); - $this->validateResponseCastableAsGraphNode(); - - return $this->castAsGraphNodeOrGraphEdge($this->decodedBody, $subclassName); - } - - /** - * Convenience method for creating a GraphAchievement collection. - * - * @return GraphAchievement - * - * @throws FacebookSDKException - */ - public function makeGraphAchievement() - { - return $this->makeGraphNode(static::BASE_GRAPH_OBJECT_PREFIX . 'GraphAchievement'); - } - - /** - * Convenience method for creating a GraphAlbum collection. - * - * @return GraphAlbum - * - * @throws FacebookSDKException - */ - public function makeGraphAlbum() - { - return $this->makeGraphNode(static::BASE_GRAPH_OBJECT_PREFIX . 'GraphAlbum'); - } - - /** - * Convenience method for creating a GraphPage collection. - * - * @return GraphPage - * - * @throws FacebookSDKException - */ - public function makeGraphPage() - { - return $this->makeGraphNode(static::BASE_GRAPH_OBJECT_PREFIX . 'GraphPage'); - } - - /** - * Convenience method for creating a GraphSessionInfo collection. - * - * @return GraphSessionInfo - * - * @throws FacebookSDKException - */ - public function makeGraphSessionInfo() - { - return $this->makeGraphNode(static::BASE_GRAPH_OBJECT_PREFIX . 'GraphSessionInfo'); - } - - /** - * Convenience method for creating a GraphUser collection. - * - * @return GraphUser - * - * @throws FacebookSDKException - */ - public function makeGraphUser() - { - return $this->makeGraphNode(static::BASE_GRAPH_OBJECT_PREFIX . 'GraphUser'); - } - - /** - * Convenience method for creating a GraphEvent collection. - * - * @return GraphEvent - * - * @throws FacebookSDKException - */ - public function makeGraphEvent() - { - return $this->makeGraphNode(static::BASE_GRAPH_OBJECT_PREFIX . 'GraphEvent'); - } - - /** - * Convenience method for creating a GraphGroup collection. - * - * @return GraphGroup - * - * @throws FacebookSDKException - */ - public function makeGraphGroup() - { - return $this->makeGraphNode(static::BASE_GRAPH_OBJECT_PREFIX . 'GraphGroup'); - } - - /** - * Tries to convert a FacebookResponse entity into a GraphEdge. - * - * @param string|null $subclassName The GraphNode sub class to cast the list items to. - * @param boolean $auto_prefix Toggle to auto-prefix the subclass name. - * - * @return GraphEdge - * - * @throws FacebookSDKException - */ - public function makeGraphEdge($subclassName = null, $auto_prefix = true) - { - $this->validateResponseAsArray(); - $this->validateResponseCastableAsGraphEdge(); - - if ($subclassName && $auto_prefix) { - $subclassName = static::BASE_GRAPH_OBJECT_PREFIX . $subclassName; - } - - return $this->castAsGraphNodeOrGraphEdge($this->decodedBody, $subclassName); - } - - /** - * Validates the decoded body. - * - * @throws FacebookSDKException - */ - public function validateResponseAsArray() - { - if (!is_array($this->decodedBody)) { - throw new FacebookSDKException('Unable to get response from Graph as array.', 620); - } - } - - /** - * Validates that the return data can be cast as a GraphNode. - * - * @throws FacebookSDKException - */ - public function validateResponseCastableAsGraphNode() - { - if (isset($this->decodedBody['data']) && static::isCastableAsGraphEdge($this->decodedBody['data'])) { - throw new FacebookSDKException( - 'Unable to convert response from Graph to a GraphNode because the response looks like a GraphEdge. Try using GraphNodeFactory::makeGraphEdge() instead.', - 620 - ); - } - } - - /** - * Validates that the return data can be cast as a GraphEdge. - * - * @throws FacebookSDKException - */ - public function validateResponseCastableAsGraphEdge() - { - if (!(isset($this->decodedBody['data']) && static::isCastableAsGraphEdge($this->decodedBody['data']))) { - throw new FacebookSDKException( - 'Unable to convert response from Graph to a GraphEdge because the response does not look like a GraphEdge. Try using GraphNodeFactory::makeGraphNode() instead.', - 620 - ); - } - } - - /** - * Safely instantiates a GraphNode of $subclassName. - * - * @param array $data The array of data to iterate over. - * @param string|null $subclassName The subclass to cast this collection to. - * - * @return GraphNode - * - * @throws FacebookSDKException - */ - public function safelyMakeGraphNode(array $data, $subclassName = null) - { - $subclassName = $subclassName ?: static::BASE_GRAPH_NODE_CLASS; - static::validateSubclass($subclassName); - - // Remember the parent node ID - $parentNodeId = isset($data['id']) ? $data['id'] : null; - - $items = []; - - foreach ($data as $k => $v) { - // Array means could be recurable - if (is_array($v)) { - // Detect any smart-casting from the $graphObjectMap array. - // This is always empty on the GraphNode collection, but subclasses can define - // their own array of smart-casting types. - $graphObjectMap = $subclassName::getObjectMap(); - $objectSubClass = isset($graphObjectMap[$k]) - ? $graphObjectMap[$k] - : null; - - // Could be a GraphEdge or GraphNode - $items[$k] = $this->castAsGraphNodeOrGraphEdge($v, $objectSubClass, $k, $parentNodeId); - } else { - $items[$k] = $v; - } - } - - return new $subclassName($items); - } - - /** - * Takes an array of values and determines how to cast each node. - * - * @param array $data The array of data to iterate over. - * @param string|null $subclassName The subclass to cast this collection to. - * @param string|null $parentKey The key of this data (Graph edge). - * @param string|null $parentNodeId The parent Graph node ID. - * - * @return GraphNode|GraphEdge - * - * @throws FacebookSDKException - */ - public function castAsGraphNodeOrGraphEdge(array $data, $subclassName = null, $parentKey = null, $parentNodeId = null) - { - if (isset($data['data'])) { - // Create GraphEdge - if (static::isCastableAsGraphEdge($data['data'])) { - return $this->safelyMakeGraphEdge($data, $subclassName, $parentKey, $parentNodeId); - } - // Sometimes Graph is a weirdo and returns a GraphNode under the "data" key - $data = $data['data']; - } - - // Create GraphNode - return $this->safelyMakeGraphNode($data, $subclassName); - } - - /** - * Return an array of GraphNode's. - * - * @param array $data The array of data to iterate over. - * @param string|null $subclassName The GraphNode subclass to cast each item in the list to. - * @param string|null $parentKey The key of this data (Graph edge). - * @param string|null $parentNodeId The parent Graph node ID. - * - * @return GraphEdge - * - * @throws FacebookSDKException - */ - public function safelyMakeGraphEdge(array $data, $subclassName = null, $parentKey = null, $parentNodeId = null) - { - if (!isset($data['data'])) { - throw new FacebookSDKException('Cannot cast data to GraphEdge. Expected a "data" key.', 620); - } - - $dataList = []; - foreach ($data['data'] as $graphNode) { - $dataList[] = $this->safelyMakeGraphNode($graphNode, $subclassName); - } - - $metaData = $this->getMetaData($data); - - // We'll need to make an edge endpoint for this in case it's a GraphEdge (for cursor pagination) - $parentGraphEdgeEndpoint = $parentNodeId && $parentKey ? '/' . $parentNodeId . '/' . $parentKey : null; - $className = static::BASE_GRAPH_EDGE_CLASS; - - return new $className($this->response->getRequest(), $dataList, $metaData, $parentGraphEdgeEndpoint, $subclassName); - } - - /** - * Get the meta data from a list in a Graph response. - * - * @param array $data The Graph response. - * - * @return array - */ - public function getMetaData(array $data) - { - unset($data['data']); - - return $data; - } - - /** - * Determines whether or not the data should be cast as a GraphEdge. - * - * @param array $data - * - * @return boolean - */ - public static function isCastableAsGraphEdge(array $data) - { - if ($data === []) { - return true; - } - - // Checks for a sequential numeric array which would be a GraphEdge - return array_keys($data) === range(0, count($data) - 1); - } - - /** - * Ensures that the subclass in question is valid. - * - * @param string $subclassName The GraphNode subclass to validate. - * - * @throws FacebookSDKException - */ - public static function validateSubclass($subclassName) - { - if ($subclassName == static::BASE_GRAPH_NODE_CLASS || is_subclass_of($subclassName, static::BASE_GRAPH_NODE_CLASS)) { - return; - } - - throw new FacebookSDKException('The given subclass "' . $subclassName . '" is not valid. Cannot cast to an object that is not a GraphNode subclass.', 620); - } -} diff --git a/mayor-orig/www/include/share/facebook/GraphNodes/GraphObject.php b/mayor-orig/www/include/share/facebook/GraphNodes/GraphObject.php deleted file mode 100644 index 0633c405..00000000 --- a/mayor-orig/www/include/share/facebook/GraphNodes/GraphObject.php +++ /dev/null @@ -1,36 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\GraphNodes; - -/** - * Class GraphObject - * - * @package Facebook - * - * @deprecated 5.0.0 GraphObject has been renamed to GraphNode - * @todo v6: Remove this class - */ -class GraphObject extends GraphNode -{ -} diff --git a/mayor-orig/www/include/share/facebook/GraphNodes/GraphObjectFactory.php b/mayor-orig/www/include/share/facebook/GraphNodes/GraphObjectFactory.php deleted file mode 100644 index c0f6e045..00000000 --- a/mayor-orig/www/include/share/facebook/GraphNodes/GraphObjectFactory.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\GraphNodes; - -use Facebook\Exceptions\FacebookSDKException; - -/** - * Class GraphObjectFactory - * - * @package Facebook - * - * @deprecated 5.0.0 GraphObjectFactory has been renamed to GraphNodeFactory - * @todo v6: Remove this class - */ -class GraphObjectFactory extends GraphNodeFactory -{ - /** - * @const string The base graph object class. - */ - const BASE_GRAPH_NODE_CLASS = '\Facebook\GraphNodes\GraphObject'; - - /** - * @const string The base graph edge class. - */ - const BASE_GRAPH_EDGE_CLASS = '\Facebook\GraphNodes\GraphList'; - - /** - * Tries to convert a FacebookResponse entity into a GraphNode. - * - * @param string|null $subclassName The GraphNode sub class to cast to. - * - * @return GraphNode - * - * @deprecated 5.0.0 GraphObjectFactory has been renamed to GraphNodeFactory - */ - public function makeGraphObject($subclassName = null) - { - return $this->makeGraphNode($subclassName); - } - - /** - * Convenience method for creating a GraphEvent collection. - * - * @return GraphEvent - * - * @throws FacebookSDKException - */ - public function makeGraphEvent() - { - return $this->makeGraphNode(static::BASE_GRAPH_OBJECT_PREFIX . 'GraphEvent'); - } - - /** - * Tries to convert a FacebookResponse entity into a GraphEdge. - * - * @param string|null $subclassName The GraphNode sub class to cast the list items to. - * @param boolean $auto_prefix Toggle to auto-prefix the subclass name. - * - * @return GraphEdge - * - * @deprecated 5.0.0 GraphObjectFactory has been renamed to GraphNodeFactory - */ - public function makeGraphList($subclassName = null, $auto_prefix = true) - { - return $this->makeGraphEdge($subclassName, $auto_prefix); - } -} diff --git a/mayor-orig/www/include/share/facebook/GraphNodes/GraphPage.php b/mayor-orig/www/include/share/facebook/GraphNodes/GraphPage.php deleted file mode 100644 index 503b96b5..00000000 --- a/mayor-orig/www/include/share/facebook/GraphNodes/GraphPage.php +++ /dev/null @@ -1,157 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\GraphNodes; - -/** - * Class GraphPage - * - * @package Facebook - */ -class GraphPage extends GraphNode -{ - /** - * @var array Maps object key names to Graph object types. - */ - protected static $graphObjectMap = [ - 'best_page' => '\Facebook\GraphNodes\GraphPage', - 'global_brand_parent_page' => '\Facebook\GraphNodes\GraphPage', - 'location' => '\Facebook\GraphNodes\GraphLocation', - 'cover' => '\Facebook\GraphNodes\GraphCoverPhoto', - 'picture' => '\Facebook\GraphNodes\GraphPicture', - ]; - - /** - * Returns the ID for the user's page as a string if present. - * - * @return string|null - */ - public function getId() - { - return $this->getField('id'); - } - - /** - * Returns the Category for the user's page as a string if present. - * - * @return string|null - */ - public function getCategory() - { - return $this->getField('category'); - } - - /** - * Returns the Name of the user's page as a string if present. - * - * @return string|null - */ - public function getName() - { - return $this->getField('name'); - } - - /** - * Returns the best available Page on Facebook. - * - * @return GraphPage|null - */ - public function getBestPage() - { - return $this->getField('best_page'); - } - - /** - * Returns the brand's global (parent) Page. - * - * @return GraphPage|null - */ - public function getGlobalBrandParentPage() - { - return $this->getField('global_brand_parent_page'); - } - - /** - * Returns the location of this place. - * - * @return GraphLocation|null - */ - public function getLocation() - { - return $this->getField('location'); - } - - /** - * Returns CoverPhoto of the Page. - * - * @return GraphCoverPhoto|null - */ - public function getCover() - { - return $this->getField('cover'); - } - - /** - * Returns Picture of the Page. - * - * @return GraphPicture|null - */ - public function getPicture() - { - return $this->getField('picture'); - } - - /** - * Returns the page access token for the admin user. - * - * Only available in the `/me/accounts` context. - * - * @return string|null - */ - public function getAccessToken() - { - return $this->getField('access_token'); - } - - /** - * Returns the roles of the page admin user. - * - * Only available in the `/me/accounts` context. - * - * @return array|null - */ - public function getPerms() - { - return $this->getField('perms'); - } - - /** - * Returns the `fan_count` (Number of people who likes to page) as int if present. - * - * @return int|null - */ - public function getFanCount() - { - return $this->getField('fan_count'); - } -} diff --git a/mayor-orig/www/include/share/facebook/GraphNodes/GraphPicture.php b/mayor-orig/www/include/share/facebook/GraphNodes/GraphPicture.php deleted file mode 100644 index 10274ec5..00000000 --- a/mayor-orig/www/include/share/facebook/GraphNodes/GraphPicture.php +++ /dev/null @@ -1,72 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\GraphNodes; - -/** - * Class GraphPicture - * - * @package Facebook - */ -class GraphPicture extends GraphNode -{ - /** - * Returns true if user picture is silhouette. - * - * @return bool|null - */ - public function isSilhouette() - { - return $this->getField('is_silhouette'); - } - - /** - * Returns the url of user picture if it exists - * - * @return string|null - */ - public function getUrl() - { - return $this->getField('url'); - } - - /** - * Returns the width of user picture if it exists - * - * @return int|null - */ - public function getWidth() - { - return $this->getField('width'); - } - - /** - * Returns the height of user picture if it exists - * - * @return int|null - */ - public function getHeight() - { - return $this->getField('height'); - } -} diff --git a/mayor-orig/www/include/share/facebook/GraphNodes/GraphSessionInfo.php b/mayor-orig/www/include/share/facebook/GraphNodes/GraphSessionInfo.php deleted file mode 100644 index df8dd358..00000000 --- a/mayor-orig/www/include/share/facebook/GraphNodes/GraphSessionInfo.php +++ /dev/null @@ -1,102 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\GraphNodes; - -/** - * Class GraphSessionInfo - * - * @package Facebook - */ -class GraphSessionInfo extends GraphNode -{ - /** - * Returns the application id the token was issued for. - * - * @return string|null - */ - public function getAppId() - { - return $this->getField('app_id'); - } - - /** - * Returns the application name the token was issued for. - * - * @return string|null - */ - public function getApplication() - { - return $this->getField('application'); - } - - /** - * Returns the date & time that the token expires. - * - * @return \DateTime|null - */ - public function getExpiresAt() - { - return $this->getField('expires_at'); - } - - /** - * Returns whether the token is valid. - * - * @return boolean - */ - public function getIsValid() - { - return $this->getField('is_valid'); - } - - /** - * Returns the date & time the token was issued at. - * - * @return \DateTime|null - */ - public function getIssuedAt() - { - return $this->getField('issued_at'); - } - - /** - * Returns the scope permissions associated with the token. - * - * @return array - */ - public function getScopes() - { - return $this->getField('scopes'); - } - - /** - * Returns the login id of the user associated with the token. - * - * @return string|null - */ - public function getUserId() - { - return $this->getField('user_id'); - } -} diff --git a/mayor-orig/www/include/share/facebook/GraphNodes/GraphUser.php b/mayor-orig/www/include/share/facebook/GraphNodes/GraphUser.php deleted file mode 100644 index 6e1ed8f5..00000000 --- a/mayor-orig/www/include/share/facebook/GraphNodes/GraphUser.php +++ /dev/null @@ -1,172 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\GraphNodes; - -/** - * Class GraphUser - * - * @package Facebook - */ -class GraphUser extends GraphNode -{ - /** - * @var array Maps object key names to Graph object types. - */ - protected static $graphObjectMap = [ - 'hometown' => '\Facebook\GraphNodes\GraphPage', - 'location' => '\Facebook\GraphNodes\GraphPage', - 'significant_other' => '\Facebook\GraphNodes\GraphUser', - 'picture' => '\Facebook\GraphNodes\GraphPicture', - ]; - - /** - * Returns the ID for the user as a string if present. - * - * @return string|null - */ - public function getId() - { - return $this->getField('id'); - } - - /** - * Returns the name for the user as a string if present. - * - * @return string|null - */ - public function getName() - { - return $this->getField('name'); - } - - /** - * Returns the first name for the user as a string if present. - * - * @return string|null - */ - public function getFirstName() - { - return $this->getField('first_name'); - } - - /** - * Returns the middle name for the user as a string if present. - * - * @return string|null - */ - public function getMiddleName() - { - return $this->getField('middle_name'); - } - - /** - * Returns the last name for the user as a string if present. - * - * @return string|null - */ - public function getLastName() - { - return $this->getField('last_name'); - } - - /** - * Returns the email for the user as a string if present. - * - * @return string|null - */ - public function getEmail() - { - return $this->getField('email'); - } - - /** - * Returns the gender for the user as a string if present. - * - * @return string|null - */ - public function getGender() - { - return $this->getField('gender'); - } - - /** - * Returns the Facebook URL for the user as a string if available. - * - * @return string|null - */ - public function getLink() - { - return $this->getField('link'); - } - - /** - * Returns the users birthday, if available. - * - * @return Birthday|null - */ - public function getBirthday() - { - return $this->getField('birthday'); - } - - /** - * Returns the current location of the user as a GraphPage. - * - * @return GraphPage|null - */ - public function getLocation() - { - return $this->getField('location'); - } - - /** - * Returns the current location of the user as a GraphPage. - * - * @return GraphPage|null - */ - public function getHometown() - { - return $this->getField('hometown'); - } - - /** - * Returns the current location of the user as a GraphUser. - * - * @return GraphUser|null - */ - public function getSignificantOther() - { - return $this->getField('significant_other'); - } - - /** - * Returns the picture of the user as a GraphPicture - * - * @return GraphPicture|null - */ - public function getPicture() - { - return $this->getField('picture'); - } -} diff --git a/mayor-orig/www/include/share/facebook/Helpers/FacebookCanvasHelper.php b/mayor-orig/www/include/share/facebook/Helpers/FacebookCanvasHelper.php deleted file mode 100644 index 7f3466ff..00000000 --- a/mayor-orig/www/include/share/facebook/Helpers/FacebookCanvasHelper.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Helpers; - -/** - * Class FacebookCanvasLoginHelper - * - * @package Facebook - */ -class FacebookCanvasHelper extends FacebookSignedRequestFromInputHelper -{ - /** - * Returns the app data value. - * - * @return mixed|null - */ - public function getAppData() - { - return $this->signedRequest ? $this->signedRequest->get('app_data') : null; - } - - /** - * Get raw signed request from POST. - * - * @return string|null - */ - public function getRawSignedRequest() - { - return $this->getRawSignedRequestFromPost() ?: null; - } -} diff --git a/mayor-orig/www/include/share/facebook/Helpers/FacebookJavaScriptHelper.php b/mayor-orig/www/include/share/facebook/Helpers/FacebookJavaScriptHelper.php deleted file mode 100644 index 01a76b8b..00000000 --- a/mayor-orig/www/include/share/facebook/Helpers/FacebookJavaScriptHelper.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Helpers; - -/** - * Class FacebookJavaScriptLoginHelper - * - * @package Facebook - */ -class FacebookJavaScriptHelper extends FacebookSignedRequestFromInputHelper -{ - /** - * Get raw signed request from the cookie. - * - * @return string|null - */ - public function getRawSignedRequest() - { - return $this->getRawSignedRequestFromCookie(); - } -} diff --git a/mayor-orig/www/include/share/facebook/Helpers/FacebookPageTabHelper.php b/mayor-orig/www/include/share/facebook/Helpers/FacebookPageTabHelper.php deleted file mode 100644 index da2c356c..00000000 --- a/mayor-orig/www/include/share/facebook/Helpers/FacebookPageTabHelper.php +++ /dev/null @@ -1,95 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Helpers; - -use Facebook\FacebookApp; -use Facebook\FacebookClient; - -/** - * Class FacebookPageTabHelper - * - * @package Facebook - */ -class FacebookPageTabHelper extends FacebookCanvasHelper -{ - /** - * @var array|null - */ - protected $pageData; - - /** - * Initialize the helper and process available signed request data. - * - * @param FacebookApp $app The FacebookApp entity. - * @param FacebookClient $client The client to make HTTP requests. - * @param string|null $graphVersion The version of Graph to use. - */ - public function __construct(FacebookApp $app, FacebookClient $client, $graphVersion = null) - { - parent::__construct($app, $client, $graphVersion); - - if (!$this->signedRequest) { - return; - } - - $this->pageData = $this->signedRequest->get('page'); - } - - /** - * Returns a value from the page data. - * - * @param string $key - * @param mixed|null $default - * - * @return mixed|null - */ - public function getPageData($key, $default = null) - { - if (isset($this->pageData[$key])) { - return $this->pageData[$key]; - } - - return $default; - } - - /** - * Returns true if the user is an admin. - * - * @return boolean - */ - public function isAdmin() - { - return $this->getPageData('admin') === true; - } - - /** - * Returns the page id if available. - * - * @return string|null - */ - public function getPageId() - { - return $this->getPageData('id'); - } -} diff --git a/mayor-orig/www/include/share/facebook/Helpers/FacebookRedirectLoginHelper.php b/mayor-orig/www/include/share/facebook/Helpers/FacebookRedirectLoginHelper.php deleted file mode 100644 index 3240ba81..00000000 --- a/mayor-orig/www/include/share/facebook/Helpers/FacebookRedirectLoginHelper.php +++ /dev/null @@ -1,333 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Helpers; - -use Facebook\Authentication\AccessToken; -use Facebook\Authentication\OAuth2Client; -use Facebook\Exceptions\FacebookSDKException; -use Facebook\PersistentData\FacebookSessionPersistentDataHandler; -use Facebook\PersistentData\PersistentDataInterface; -use Facebook\PseudoRandomString\PseudoRandomStringGeneratorFactory; -use Facebook\PseudoRandomString\PseudoRandomStringGeneratorInterface; -use Facebook\Url\FacebookUrlDetectionHandler; -use Facebook\Url\FacebookUrlManipulator; -use Facebook\Url\UrlDetectionInterface; - -/** - * Class FacebookRedirectLoginHelper - * - * @package Facebook - */ -class FacebookRedirectLoginHelper -{ - /** - * @const int The length of CSRF string to validate the login link. - */ - const CSRF_LENGTH = 32; - - /** - * @var OAuth2Client The OAuth 2.0 client service. - */ - protected $oAuth2Client; - - /** - * @var UrlDetectionInterface The URL detection handler. - */ - protected $urlDetectionHandler; - - /** - * @var PersistentDataInterface The persistent data handler. - */ - protected $persistentDataHandler; - - /** - * @var PseudoRandomStringGeneratorInterface The cryptographically secure pseudo-random string generator. - */ - protected $pseudoRandomStringGenerator; - - /** - * @param OAuth2Client $oAuth2Client The OAuth 2.0 client service. - * @param PersistentDataInterface|null $persistentDataHandler The persistent data handler. - * @param UrlDetectionInterface|null $urlHandler The URL detection handler. - * @param PseudoRandomStringGeneratorInterface|null $prsg The cryptographically secure pseudo-random string generator. - */ - public function __construct(OAuth2Client $oAuth2Client, PersistentDataInterface $persistentDataHandler = null, UrlDetectionInterface $urlHandler = null, PseudoRandomStringGeneratorInterface $prsg = null) - { - $this->oAuth2Client = $oAuth2Client; - $this->persistentDataHandler = $persistentDataHandler ?: new FacebookSessionPersistentDataHandler(); - $this->urlDetectionHandler = $urlHandler ?: new FacebookUrlDetectionHandler(); - $this->pseudoRandomStringGenerator = PseudoRandomStringGeneratorFactory::createPseudoRandomStringGenerator($prsg); - } - - /** - * Returns the persistent data handler. - * - * @return PersistentDataInterface - */ - public function getPersistentDataHandler() - { - return $this->persistentDataHandler; - } - - /** - * Returns the URL detection handler. - * - * @return UrlDetectionInterface - */ - public function getUrlDetectionHandler() - { - return $this->urlDetectionHandler; - } - - /** - * Returns the cryptographically secure pseudo-random string generator. - * - * @return PseudoRandomStringGeneratorInterface - */ - public function getPseudoRandomStringGenerator() - { - return $this->pseudoRandomStringGenerator; - } - - /** - * Stores CSRF state and returns a URL to which the user should be sent to in order to continue the login process with Facebook. - * - * @param string $redirectUrl The URL Facebook should redirect users to after login. - * @param array $scope List of permissions to request during login. - * @param array $params An array of parameters to generate URL. - * @param string $separator The separator to use in http_build_query(). - * - * @return string - */ - private function makeUrl($redirectUrl, array $scope, array $params = [], $separator = '&') - { - $state = $this->persistentDataHandler->get('state') ?: $this->pseudoRandomStringGenerator->getPseudoRandomString(static::CSRF_LENGTH); - $this->persistentDataHandler->set('state', $state); - - return $this->oAuth2Client->getAuthorizationUrl($redirectUrl, $state, $scope, $params, $separator); - } - - /** - * Returns the URL to send the user in order to login to Facebook. - * - * @param string $redirectUrl The URL Facebook should redirect users to after login. - * @param array $scope List of permissions to request during login. - * @param string $separator The separator to use in http_build_query(). - * - * @return string - */ - public function getLoginUrl($redirectUrl, array $scope = [], $separator = '&') - { - return $this->makeUrl($redirectUrl, $scope, [], $separator); - } - - /** - * Returns the URL to send the user in order to log out of Facebook. - * - * @param AccessToken|string $accessToken The access token that will be logged out. - * @param string $next The url Facebook should redirect the user to after a successful logout. - * @param string $separator The separator to use in http_build_query(). - * - * @return string - * - * @throws FacebookSDKException - */ - public function getLogoutUrl($accessToken, $next, $separator = '&') - { - if (!$accessToken instanceof AccessToken) { - $accessToken = new AccessToken($accessToken); - } - - if ($accessToken->isAppAccessToken()) { - throw new FacebookSDKException('Cannot generate a logout URL with an app access token.', 722); - } - - $params = [ - 'next' => $next, - 'access_token' => $accessToken->getValue(), - ]; - - return 'https://www.facebook.com/logout.php?' . http_build_query($params, null, $separator); - } - - /** - * Returns the URL to send the user in order to login to Facebook with permission(s) to be re-asked. - * - * @param string $redirectUrl The URL Facebook should redirect users to after login. - * @param array $scope List of permissions to request during login. - * @param string $separator The separator to use in http_build_query(). - * - * @return string - */ - public function getReRequestUrl($redirectUrl, array $scope = [], $separator = '&') - { - $params = ['auth_type' => 'rerequest']; - - return $this->makeUrl($redirectUrl, $scope, $params, $separator); - } - - /** - * Returns the URL to send the user in order to login to Facebook with user to be re-authenticated. - * - * @param string $redirectUrl The URL Facebook should redirect users to after login. - * @param array $scope List of permissions to request during login. - * @param string $separator The separator to use in http_build_query(). - * - * @return string - */ - public function getReAuthenticationUrl($redirectUrl, array $scope = [], $separator = '&') - { - $params = ['auth_type' => 'reauthenticate']; - - return $this->makeUrl($redirectUrl, $scope, $params, $separator); - } - - /** - * Takes a valid code from a login redirect, and returns an AccessToken entity. - * - * @param string|null $redirectUrl The redirect URL. - * - * @return AccessToken|null - * - * @throws FacebookSDKException - */ - public function getAccessToken($redirectUrl = null) - { - if (!$code = $this->getCode()) { - return null; - } - - $this->validateCsrf(); - $this->resetCsrf(); - - $redirectUrl = $redirectUrl ?: $this->urlDetectionHandler->getCurrentUrl(); - // At minimum we need to remove the 'state' and 'code' params - $redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl, ['code', 'state']); - - return $this->oAuth2Client->getAccessTokenFromCode($code, $redirectUrl); - } - - /** - * Validate the request against a cross-site request forgery. - * - * @throws FacebookSDKException - */ - protected function validateCsrf() - { - $state = $this->getState(); - if (!$state) { - throw new FacebookSDKException('Cross-site request forgery validation failed. Required GET param "state" missing.'); - } - $savedState = $this->persistentDataHandler->get('state'); - if (!$savedState) { - throw new FacebookSDKException('Cross-site request forgery validation failed. Required param "state" missing from persistent data.'); - } - - if (\hash_equals($savedState, $state)) { - return; - } - - throw new FacebookSDKException('Cross-site request forgery validation failed. The "state" param from the URL and session do not match.'); - } - - /** - * Resets the CSRF so that it doesn't get reused. - */ - private function resetCsrf() - { - $this->persistentDataHandler->set('state', null); - } - - /** - * Return the code. - * - * @return string|null - */ - protected function getCode() - { - return $this->getInput('code'); - } - - /** - * Return the state. - * - * @return string|null - */ - protected function getState() - { - return $this->getInput('state'); - } - - /** - * Return the error code. - * - * @return string|null - */ - public function getErrorCode() - { - return $this->getInput('error_code'); - } - - /** - * Returns the error. - * - * @return string|null - */ - public function getError() - { - return $this->getInput('error'); - } - - /** - * Returns the error reason. - * - * @return string|null - */ - public function getErrorReason() - { - return $this->getInput('error_reason'); - } - - /** - * Returns the error description. - * - * @return string|null - */ - public function getErrorDescription() - { - return $this->getInput('error_description'); - } - - /** - * Returns a value from a GET param. - * - * @param string $key - * - * @return string|null - */ - private function getInput($key) - { - return isset($_GET[$key]) ? $_GET[$key] : null; - } -} diff --git a/mayor-orig/www/include/share/facebook/Helpers/FacebookSignedRequestFromInputHelper.php b/mayor-orig/www/include/share/facebook/Helpers/FacebookSignedRequestFromInputHelper.php deleted file mode 100644 index 4044da10..00000000 --- a/mayor-orig/www/include/share/facebook/Helpers/FacebookSignedRequestFromInputHelper.php +++ /dev/null @@ -1,166 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Helpers; - -use Facebook\Facebook; -use Facebook\FacebookApp; -use Facebook\FacebookClient; -use Facebook\SignedRequest; -use Facebook\Authentication\AccessToken; -use Facebook\Authentication\OAuth2Client; - -/** - * Class FacebookSignedRequestFromInputHelper - * - * @package Facebook - */ -abstract class FacebookSignedRequestFromInputHelper -{ - /** - * @var SignedRequest|null The SignedRequest entity. - */ - protected $signedRequest; - - /** - * @var FacebookApp The FacebookApp entity. - */ - protected $app; - - /** - * @var OAuth2Client The OAuth 2.0 client service. - */ - protected $oAuth2Client; - - /** - * Initialize the helper and process available signed request data. - * - * @param FacebookApp $app The FacebookApp entity. - * @param FacebookClient $client The client to make HTTP requests. - * @param string|null $graphVersion The version of Graph to use. - */ - public function __construct(FacebookApp $app, FacebookClient $client, $graphVersion = null) - { - $this->app = $app; - $graphVersion = $graphVersion ?: Facebook::DEFAULT_GRAPH_VERSION; - $this->oAuth2Client = new OAuth2Client($this->app, $client, $graphVersion); - - $this->instantiateSignedRequest(); - } - - /** - * Instantiates a new SignedRequest entity. - * - * @param string|null - */ - public function instantiateSignedRequest($rawSignedRequest = null) - { - $rawSignedRequest = $rawSignedRequest ?: $this->getRawSignedRequest(); - - if (!$rawSignedRequest) { - return; - } - - $this->signedRequest = new SignedRequest($this->app, $rawSignedRequest); - } - - /** - * Returns an AccessToken entity from the signed request. - * - * @return AccessToken|null - * - * @throws \Facebook\Exceptions\FacebookSDKException - */ - public function getAccessToken() - { - if ($this->signedRequest && $this->signedRequest->hasOAuthData()) { - $code = $this->signedRequest->get('code'); - $accessToken = $this->signedRequest->get('oauth_token'); - - if ($code && !$accessToken) { - return $this->oAuth2Client->getAccessTokenFromCode($code); - } - - $expiresAt = $this->signedRequest->get('expires', 0); - - return new AccessToken($accessToken, $expiresAt); - } - - return null; - } - - /** - * Returns the SignedRequest entity. - * - * @return SignedRequest|null - */ - public function getSignedRequest() - { - return $this->signedRequest; - } - - /** - * Returns the user_id if available. - * - * @return string|null - */ - public function getUserId() - { - return $this->signedRequest ? $this->signedRequest->getUserId() : null; - } - - /** - * Get raw signed request from input. - * - * @return string|null - */ - abstract public function getRawSignedRequest(); - - /** - * Get raw signed request from POST input. - * - * @return string|null - */ - public function getRawSignedRequestFromPost() - { - if (isset($_POST['signed_request'])) { - return $_POST['signed_request']; - } - - return null; - } - - /** - * Get raw signed request from cookie set from the Javascript SDK. - * - * @return string|null - */ - public function getRawSignedRequestFromCookie() - { - if (isset($_COOKIE['fbsr_' . $this->app->getId()])) { - return $_COOKIE['fbsr_' . $this->app->getId()]; - } - - return null; - } -} diff --git a/mayor-orig/www/include/share/facebook/Http/GraphRawResponse.php b/mayor-orig/www/include/share/facebook/Http/GraphRawResponse.php deleted file mode 100644 index d1a7241c..00000000 --- a/mayor-orig/www/include/share/facebook/Http/GraphRawResponse.php +++ /dev/null @@ -1,137 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Http; - -/** - * Class GraphRawResponse - * - * @package Facebook - */ -class GraphRawResponse -{ - /** - * @var array The response headers in the form of an associative array. - */ - protected $headers; - - /** - * @var string The raw response body. - */ - protected $body; - - /** - * @var int The HTTP status response code. - */ - protected $httpResponseCode; - - /** - * Creates a new GraphRawResponse entity. - * - * @param string|array $headers The headers as a raw string or array. - * @param string $body The raw response body. - * @param int $httpStatusCode The HTTP response code (if sending headers as parsed array). - */ - public function __construct($headers, $body, $httpStatusCode = null) - { - if (is_numeric($httpStatusCode)) { - $this->httpResponseCode = (int)$httpStatusCode; - } - - if (is_array($headers)) { - $this->headers = $headers; - } else { - $this->setHeadersFromString($headers); - } - - $this->body = $body; - } - - /** - * Return the response headers. - * - * @return array - */ - public function getHeaders() - { - return $this->headers; - } - - /** - * Return the body of the response. - * - * @return string - */ - public function getBody() - { - return $this->body; - } - - /** - * Return the HTTP response code. - * - * @return int - */ - public function getHttpResponseCode() - { - return $this->httpResponseCode; - } - - /** - * Sets the HTTP response code from a raw header. - * - * @param string $rawResponseHeader - */ - public function setHttpResponseCodeFromHeader($rawResponseHeader) - { - preg_match('|HTTP/\d\.\d\s+(\d+)\s+.*|', $rawResponseHeader, $match); - $this->httpResponseCode = (int)$match[1]; - } - - /** - * Parse the raw headers and set as an array. - * - * @param string $rawHeaders The raw headers from the response. - */ - protected function setHeadersFromString($rawHeaders) - { - // Normalize line breaks - $rawHeaders = str_replace("\r\n", "\n", $rawHeaders); - - // There will be multiple headers if a 301 was followed - // or a proxy was followed, etc - $headerCollection = explode("\n\n", trim($rawHeaders)); - // We just want the last response (at the end) - $rawHeader = array_pop($headerCollection); - - $headerComponents = explode("\n", $rawHeader); - foreach ($headerComponents as $line) { - if (strpos($line, ': ') === false) { - $this->setHttpResponseCodeFromHeader($line); - } else { - list($key, $value) = explode(': ', $line, 2); - $this->headers[$key] = $value; - } - } - } -} diff --git a/mayor-orig/www/include/share/facebook/Http/RequestBodyInterface.php b/mayor-orig/www/include/share/facebook/Http/RequestBodyInterface.php deleted file mode 100644 index 1c03f4fd..00000000 --- a/mayor-orig/www/include/share/facebook/Http/RequestBodyInterface.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Http; - -/** - * Interface - * - * @package Facebook - */ -interface RequestBodyInterface -{ - /** - * Get the body of the request to send to Graph. - * - * @return string - */ - public function getBody(); -} diff --git a/mayor-orig/www/include/share/facebook/Http/RequestBodyMultipart.php b/mayor-orig/www/include/share/facebook/Http/RequestBodyMultipart.php deleted file mode 100644 index e43695a4..00000000 --- a/mayor-orig/www/include/share/facebook/Http/RequestBodyMultipart.php +++ /dev/null @@ -1,170 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Http; - -use Facebook\FileUpload\FacebookFile; - -/** - * Class RequestBodyMultipartt - * - * Some things copied from Guzzle - * - * @package Facebook - * - * @see https://github.com/guzzle/guzzle/blob/master/src/Post/MultipartBody.php - */ -class RequestBodyMultipart implements RequestBodyInterface -{ - /** - * @var string The boundary. - */ - private $boundary; - - /** - * @var array The parameters to send with this request. - */ - private $params; - - /** - * @var array The files to send with this request. - */ - private $files = []; - - /** - * @param array $params The parameters to send with this request. - * @param array $files The files to send with this request. - * @param string $boundary Provide a specific boundary. - */ - public function __construct(array $params = [], array $files = [], $boundary = null) - { - $this->params = $params; - $this->files = $files; - $this->boundary = $boundary ?: uniqid(); - } - - /** - * @inheritdoc - */ - public function getBody() - { - $body = ''; - - // Compile normal params - $params = $this->getNestedParams($this->params); - foreach ($params as $k => $v) { - $body .= $this->getParamString($k, $v); - } - - // Compile files - foreach ($this->files as $k => $v) { - $body .= $this->getFileString($k, $v); - } - - // Peace out - $body .= "--{$this->boundary}--\r\n"; - - return $body; - } - - /** - * Get the boundary - * - * @return string - */ - public function getBoundary() - { - return $this->boundary; - } - - /** - * Get the string needed to transfer a file. - * - * @param string $name - * @param FacebookFile $file - * - * @return string - */ - private function getFileString($name, FacebookFile $file) - { - return sprintf( - "--%s\r\nContent-Disposition: form-data; name=\"%s\"; filename=\"%s\"%s\r\n\r\n%s\r\n", - $this->boundary, - $name, - $file->getFileName(), - $this->getFileHeaders($file), - $file->getContents() - ); - } - - /** - * Get the string needed to transfer a POST field. - * - * @param string $name - * @param string $value - * - * @return string - */ - private function getParamString($name, $value) - { - return sprintf( - "--%s\r\nContent-Disposition: form-data; name=\"%s\"\r\n\r\n%s\r\n", - $this->boundary, - $name, - $value - ); - } - - /** - * Returns the params as an array of nested params. - * - * @param array $params - * - * @return array - */ - private function getNestedParams(array $params) - { - $query = http_build_query($params, null, '&'); - $params = explode('&', $query); - $result = []; - - foreach ($params as $param) { - list($key, $value) = explode('=', $param, 2); - $result[urldecode($key)] = urldecode($value); - } - - return $result; - } - - /** - * Get the headers needed before transferring the content of a POST file. - * - * @param FacebookFile $file - * - * @return string - */ - protected function getFileHeaders(FacebookFile $file) - { - return "\r\nContent-Type: {$file->getMimetype()}"; - } -} diff --git a/mayor-orig/www/include/share/facebook/Http/RequestBodyUrlEncoded.php b/mayor-orig/www/include/share/facebook/Http/RequestBodyUrlEncoded.php deleted file mode 100644 index c1e35f43..00000000 --- a/mayor-orig/www/include/share/facebook/Http/RequestBodyUrlEncoded.php +++ /dev/null @@ -1,55 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Http; - -/** - * Class RequestBodyUrlEncoded - * - * @package Facebook - */ -class RequestBodyUrlEncoded implements RequestBodyInterface -{ - /** - * @var array The parameters to send with this request. - */ - protected $params = []; - - /** - * Creates a new GraphUrlEncodedBody entity. - * - * @param array $params - */ - public function __construct(array $params) - { - $this->params = $params; - } - - /** - * @inheritdoc - */ - public function getBody() - { - return http_build_query($this->params, null, '&'); - } -} diff --git a/mayor-orig/www/include/share/facebook/HttpClients/FacebookCurl.php b/mayor-orig/www/include/share/facebook/HttpClients/FacebookCurl.php deleted file mode 100644 index 28e4ba59..00000000 --- a/mayor-orig/www/include/share/facebook/HttpClients/FacebookCurl.php +++ /dev/null @@ -1,129 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\HttpClients; - -/** - * Class FacebookCurl - * - * Abstraction for the procedural curl elements so that curl can be mocked and the implementation can be tested. - * - * @package Facebook - */ -class FacebookCurl -{ - - /** - * @var resource Curl resource instance - */ - protected $curl; - - /** - * Make a new curl reference instance - */ - public function init() - { - $this->curl = curl_init(); - } - - /** - * Set a curl option - * - * @param $key - * @param $value - */ - public function setopt($key, $value) - { - curl_setopt($this->curl, $key, $value); - } - - /** - * Set an array of options to a curl resource - * - * @param array $options - */ - public function setoptArray(array $options) - { - curl_setopt_array($this->curl, $options); - } - - /** - * Send a curl request - * - * @return mixed - */ - public function exec() - { - return curl_exec($this->curl); - } - - /** - * Return the curl error number - * - * @return int - */ - public function errno() - { - return curl_errno($this->curl); - } - - /** - * Return the curl error message - * - * @return string - */ - public function error() - { - return curl_error($this->curl); - } - - /** - * Get info from a curl reference - * - * @param $type - * - * @return mixed - */ - public function getinfo($type) - { - return curl_getinfo($this->curl, $type); - } - - /** - * Get the currently installed curl version - * - * @return array - */ - public function version() - { - return curl_version(); - } - - /** - * Close the resource connection to curl - */ - public function close() - { - curl_close($this->curl); - } -} diff --git a/mayor-orig/www/include/share/facebook/HttpClients/FacebookCurlHttpClient.php b/mayor-orig/www/include/share/facebook/HttpClients/FacebookCurlHttpClient.php deleted file mode 100644 index 9516cc83..00000000 --- a/mayor-orig/www/include/share/facebook/HttpClients/FacebookCurlHttpClient.php +++ /dev/null @@ -1,163 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\HttpClients; - -use Facebook\Http\GraphRawResponse; -use Facebook\Exceptions\FacebookSDKException; - -/** - * Class FacebookCurlHttpClient - * - * @package Facebook - */ -class FacebookCurlHttpClient implements FacebookHttpClientInterface -{ - /** - * @var string The client error message - */ - protected $curlErrorMessage = ''; - - /** - * @var int The curl client error code - */ - protected $curlErrorCode = 0; - - /** - * @var string|boolean The raw response from the server - */ - protected $rawResponse; - - /** - * @var FacebookCurl Procedural curl as object - */ - protected $facebookCurl; - - /** - * @param FacebookCurl|null Procedural curl as object - */ - public function __construct(FacebookCurl $facebookCurl = null) - { - $this->facebookCurl = $facebookCurl ?: new FacebookCurl(); - } - - /** - * @inheritdoc - */ - public function send($url, $method, $body, array $headers, $timeOut) - { - $this->openConnection($url, $method, $body, $headers, $timeOut); - $this->sendRequest(); - - if ($curlErrorCode = $this->facebookCurl->errno()) { - throw new FacebookSDKException($this->facebookCurl->error(), $curlErrorCode); - } - - // Separate the raw headers from the raw body - list($rawHeaders, $rawBody) = $this->extractResponseHeadersAndBody(); - - $this->closeConnection(); - - return new GraphRawResponse($rawHeaders, $rawBody); - } - - /** - * Opens a new curl connection. - * - * @param string $url The endpoint to send the request to. - * @param string $method The request method. - * @param string $body The body of the request. - * @param array $headers The request headers. - * @param int $timeOut The timeout in seconds for the request. - */ - public function openConnection($url, $method, $body, array $headers, $timeOut) - { - $options = [ - CURLOPT_CUSTOMREQUEST => $method, - CURLOPT_HTTPHEADER => $this->compileRequestHeaders($headers), - CURLOPT_URL => $url, - CURLOPT_CONNECTTIMEOUT => 10, - CURLOPT_TIMEOUT => $timeOut, - CURLOPT_RETURNTRANSFER => true, // Return response as string - CURLOPT_HEADER => true, // Enable header processing - CURLOPT_SSL_VERIFYHOST => 2, - CURLOPT_SSL_VERIFYPEER => true, - CURLOPT_CAINFO => __DIR__ . '/certs/DigiCertHighAssuranceEVRootCA.pem', - ]; - - if ($method !== "GET") { - $options[CURLOPT_POSTFIELDS] = $body; - } - - $this->facebookCurl->init(); - $this->facebookCurl->setoptArray($options); - } - - /** - * Closes an existing curl connection - */ - public function closeConnection() - { - $this->facebookCurl->close(); - } - - /** - * Send the request and get the raw response from curl - */ - public function sendRequest() - { - $this->rawResponse = $this->facebookCurl->exec(); - } - - /** - * Compiles the request headers into a curl-friendly format. - * - * @param array $headers The request headers. - * - * @return array - */ - public function compileRequestHeaders(array $headers) - { - $return = []; - - foreach ($headers as $key => $value) { - $return[] = $key . ': ' . $value; - } - - return $return; - } - - /** - * Extracts the headers and the body into a two-part array - * - * @return array - */ - public function extractResponseHeadersAndBody() - { - $parts = explode("\r\n\r\n", $this->rawResponse); - $rawBody = array_pop($parts); - $rawHeaders = implode("\r\n\r\n", $parts); - - return [trim($rawHeaders), trim($rawBody)]; - } -} diff --git a/mayor-orig/www/include/share/facebook/HttpClients/FacebookGuzzleHttpClient.php b/mayor-orig/www/include/share/facebook/HttpClients/FacebookGuzzleHttpClient.php deleted file mode 100644 index 8feb7cb6..00000000 --- a/mayor-orig/www/include/share/facebook/HttpClients/FacebookGuzzleHttpClient.php +++ /dev/null @@ -1,97 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\HttpClients; - -use Facebook\Http\GraphRawResponse; -use Facebook\Exceptions\FacebookSDKException; - -use GuzzleHttp\Client; -use GuzzleHttp\Message\ResponseInterface; -use GuzzleHttp\Ring\Exception\RingException; -use GuzzleHttp\Exception\RequestException; - -class FacebookGuzzleHttpClient implements FacebookHttpClientInterface -{ - /** - * @var \GuzzleHttp\Client The Guzzle client. - */ - protected $guzzleClient; - - /** - * @param \GuzzleHttp\Client|null The Guzzle client. - */ - public function __construct(Client $guzzleClient = null) - { - $this->guzzleClient = $guzzleClient ?: new Client(); - } - - /** - * @inheritdoc - */ - public function send($url, $method, $body, array $headers, $timeOut) - { - $options = [ - 'headers' => $headers, - 'body' => $body, - 'timeout' => $timeOut, - 'connect_timeout' => 10, - 'verify' => __DIR__ . '/certs/DigiCertHighAssuranceEVRootCA.pem', - ]; - $request = $this->guzzleClient->createRequest($method, $url, $options); - - try { - $rawResponse = $this->guzzleClient->send($request); - } catch (RequestException $e) { - $rawResponse = $e->getResponse(); - - if ($e->getPrevious() instanceof RingException || !$rawResponse instanceof ResponseInterface) { - throw new FacebookSDKException($e->getMessage(), $e->getCode()); - } - } - - $rawHeaders = $this->getHeadersAsString($rawResponse); - $rawBody = $rawResponse->getBody(); - $httpStatusCode = $rawResponse->getStatusCode(); - - return new GraphRawResponse($rawHeaders, $rawBody, $httpStatusCode); - } - - /** - * Returns the Guzzle array of headers as a string. - * - * @param ResponseInterface $response The Guzzle response. - * - * @return string - */ - public function getHeadersAsString(ResponseInterface $response) - { - $headers = $response->getHeaders(); - $rawHeaders = []; - foreach ($headers as $name => $values) { - $rawHeaders[] = $name . ": " . implode(", ", $values); - } - - return implode("\r\n", $rawHeaders); - } -} diff --git a/mayor-orig/www/include/share/facebook/HttpClients/FacebookHttpClientInterface.php b/mayor-orig/www/include/share/facebook/HttpClients/FacebookHttpClientInterface.php deleted file mode 100644 index 1fbf953d..00000000 --- a/mayor-orig/www/include/share/facebook/HttpClients/FacebookHttpClientInterface.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\HttpClients; - -/** - * Interface FacebookHttpClientInterface - * - * @package Facebook - */ -interface FacebookHttpClientInterface -{ - /** - * Sends a request to the server and returns the raw response. - * - * @param string $url The endpoint to send the request to. - * @param string $method The request method. - * @param string $body The body of the request. - * @param array $headers The request headers. - * @param int $timeOut The timeout in seconds for the request. - * - * @return \Facebook\Http\GraphRawResponse Raw response from the server. - * - * @throws \Facebook\Exceptions\FacebookSDKException - */ - public function send($url, $method, $body, array $headers, $timeOut); -} diff --git a/mayor-orig/www/include/share/facebook/HttpClients/FacebookStream.php b/mayor-orig/www/include/share/facebook/HttpClients/FacebookStream.php deleted file mode 100644 index 3f399884..00000000 --- a/mayor-orig/www/include/share/facebook/HttpClients/FacebookStream.php +++ /dev/null @@ -1,80 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\HttpClients; - -/** - * Class FacebookStream - * - * Abstraction for the procedural stream elements so that the functions can be - * mocked and the implementation can be tested. - * - * @package Facebook - */ -class FacebookStream -{ - /** - * @var resource Context stream resource instance - */ - protected $stream; - - /** - * @var array Response headers from the stream wrapper - */ - protected $responseHeaders = []; - - /** - * Make a new context stream reference instance - * - * @param array $options - */ - public function streamContextCreate(array $options) - { - $this->stream = stream_context_create($options); - } - - /** - * The response headers from the stream wrapper - * - * @return array - */ - public function getResponseHeaders() - { - return $this->responseHeaders; - } - - /** - * Send a stream wrapped request - * - * @param string $url - * - * @return mixed - */ - public function fileGetContents($url) - { - $rawResponse = file_get_contents($url, false, $this->stream); - $this->responseHeaders = $http_response_header ?: []; - - return $rawResponse; - } -} diff --git a/mayor-orig/www/include/share/facebook/HttpClients/FacebookStreamHttpClient.php b/mayor-orig/www/include/share/facebook/HttpClients/FacebookStreamHttpClient.php deleted file mode 100644 index 1cdfd539..00000000 --- a/mayor-orig/www/include/share/facebook/HttpClients/FacebookStreamHttpClient.php +++ /dev/null @@ -1,94 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\HttpClients; - -use Facebook\Http\GraphRawResponse; -use Facebook\Exceptions\FacebookSDKException; - -class FacebookStreamHttpClient implements FacebookHttpClientInterface -{ - /** - * @var FacebookStream Procedural stream wrapper as object. - */ - protected $facebookStream; - - /** - * @param FacebookStream|null Procedural stream wrapper as object. - */ - public function __construct(FacebookStream $facebookStream = null) - { - $this->facebookStream = $facebookStream ?: new FacebookStream(); - } - - /** - * @inheritdoc - */ - public function send($url, $method, $body, array $headers, $timeOut) - { - $options = [ - 'http' => [ - 'method' => $method, - 'header' => $this->compileHeader($headers), - 'content' => $body, - 'timeout' => $timeOut, - 'ignore_errors' => true - ], - 'ssl' => [ - 'verify_peer' => true, - 'verify_peer_name' => true, - 'allow_self_signed' => true, // All root certificates are self-signed - 'cafile' => __DIR__ . '/certs/DigiCertHighAssuranceEVRootCA.pem', - ], - ]; - - $this->facebookStream->streamContextCreate($options); - $rawBody = $this->facebookStream->fileGetContents($url); - $rawHeaders = $this->facebookStream->getResponseHeaders(); - - if ($rawBody === false || empty($rawHeaders)) { - throw new FacebookSDKException('Stream returned an empty response', 660); - } - - $rawHeaders = implode("\r\n", $rawHeaders); - - return new GraphRawResponse($rawHeaders, $rawBody); - } - - /** - * Formats the headers for use in the stream wrapper. - * - * @param array $headers The request headers. - * - * @return string - */ - public function compileHeader(array $headers) - { - $header = []; - foreach ($headers as $k => $v) { - $header[] = $k . ': ' . $v; - } - - return implode("\r\n", $header); - } -} diff --git a/mayor-orig/www/include/share/facebook/HttpClients/HttpClientsFactory.php b/mayor-orig/www/include/share/facebook/HttpClients/HttpClientsFactory.php deleted file mode 100644 index d9f2a8d3..00000000 --- a/mayor-orig/www/include/share/facebook/HttpClients/HttpClientsFactory.php +++ /dev/null @@ -1,99 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\HttpClients; - -use GuzzleHttp\Client; -use InvalidArgumentException; -use Exception; - -class HttpClientsFactory -{ - private function __construct() - { - // a factory constructor should never be invoked - } - - /** - * HTTP client generation. - * - * @param FacebookHttpClientInterface|Client|string|null $handler - * - * @throws Exception If the cURL extension or the Guzzle client aren't available (if required). - * @throws InvalidArgumentException If the http client handler isn't "curl", "stream", "guzzle", or an instance of Facebook\HttpClients\FacebookHttpClientInterface. - * - * @return FacebookHttpClientInterface - */ - public static function createHttpClient($handler) - { - if (!$handler) { - return self::detectDefaultClient(); - } - - if ($handler instanceof FacebookHttpClientInterface) { - return $handler; - } - - if ('stream' === $handler) { - return new FacebookStreamHttpClient(); - } - if ('curl' === $handler) { - if (!extension_loaded('curl')) { - throw new Exception('The cURL extension must be loaded in order to use the "curl" handler.'); - } - - return new FacebookCurlHttpClient(); - } - - if ('guzzle' === $handler && !class_exists('GuzzleHttp\Client')) { - throw new Exception('The Guzzle HTTP client must be included in order to use the "guzzle" handler.'); - } - - if ($handler instanceof Client) { - return new FacebookGuzzleHttpClient($handler); - } - if ('guzzle' === $handler) { - return new FacebookGuzzleHttpClient(); - } - - throw new InvalidArgumentException('The http client handler must be set to "curl", "stream", "guzzle", be an instance of GuzzleHttp\Client or an instance of Facebook\HttpClients\FacebookHttpClientInterface'); - } - - /** - * Detect default HTTP client. - * - * @return FacebookHttpClientInterface - */ - private static function detectDefaultClient() - { - if (extension_loaded('curl')) { - return new FacebookCurlHttpClient(); - } - - if (class_exists('GuzzleHttp\Client')) { - return new FacebookGuzzleHttpClient(); - } - - return new FacebookStreamHttpClient(); - } -} diff --git a/mayor-orig/www/include/share/facebook/HttpClients/certs/DigiCertHighAssuranceEVRootCA.pem b/mayor-orig/www/include/share/facebook/HttpClients/certs/DigiCertHighAssuranceEVRootCA.pem deleted file mode 100644 index 9e6810ab..00000000 --- a/mayor-orig/www/include/share/facebook/HttpClients/certs/DigiCertHighAssuranceEVRootCA.pem +++ /dev/null @@ -1,23 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j -ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL -MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3 -LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug -RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm -+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW -PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM -xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB -Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3 -hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg -EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF -MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA -FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec -nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z -eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF -hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2 -Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe -vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep -+OkuE6N36B9K ------END CERTIFICATE----- diff --git a/mayor-orig/www/include/share/facebook/PersistentData/FacebookMemoryPersistentDataHandler.php b/mayor-orig/www/include/share/facebook/PersistentData/FacebookMemoryPersistentDataHandler.php deleted file mode 100644 index 4b7c87ea..00000000 --- a/mayor-orig/www/include/share/facebook/PersistentData/FacebookMemoryPersistentDataHandler.php +++ /dev/null @@ -1,53 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\PersistentData; - -/** - * Class FacebookMemoryPersistentDataHandler - * - * @package Facebook - */ -class FacebookMemoryPersistentDataHandler implements PersistentDataInterface -{ - /** - * @var array The session data to keep in memory. - */ - protected $sessionData = []; - - /** - * @inheritdoc - */ - public function get($key) - { - return isset($this->sessionData[$key]) ? $this->sessionData[$key] : null; - } - - /** - * @inheritdoc - */ - public function set($key, $value) - { - $this->sessionData[$key] = $value; - } -} diff --git a/mayor-orig/www/include/share/facebook/PersistentData/FacebookSessionPersistentDataHandler.php b/mayor-orig/www/include/share/facebook/PersistentData/FacebookSessionPersistentDataHandler.php deleted file mode 100644 index 9123e3dc..00000000 --- a/mayor-orig/www/include/share/facebook/PersistentData/FacebookSessionPersistentDataHandler.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\PersistentData; - -use Facebook\Exceptions\FacebookSDKException; - -/** - * Class FacebookSessionPersistentDataHandler - * - * @package Facebook - */ -class FacebookSessionPersistentDataHandler implements PersistentDataInterface -{ - /** - * @var string Prefix to use for session variables. - */ - protected $sessionPrefix = 'FBRLH_'; - - /** - * Init the session handler. - * - * @param boolean $enableSessionCheck - * - * @throws FacebookSDKException - */ - public function __construct($enableSessionCheck = true) - { - if ($enableSessionCheck && session_status() !== PHP_SESSION_ACTIVE) { - throw new FacebookSDKException( - 'Sessions are not active. Please make sure session_start() is at the top of your script.', - 720 - ); - } - } - - /** - * @inheritdoc - */ - public function get($key) - { - if (isset($_SESSION[$this->sessionPrefix . $key])) { - return $_SESSION[$this->sessionPrefix . $key]; - } - - return null; - } - - /** - * @inheritdoc - */ - public function set($key, $value) - { - $_SESSION[$this->sessionPrefix . $key] = $value; - } -} diff --git a/mayor-orig/www/include/share/facebook/PersistentData/PersistentDataFactory.php b/mayor-orig/www/include/share/facebook/PersistentData/PersistentDataFactory.php deleted file mode 100644 index 18fb8fd5..00000000 --- a/mayor-orig/www/include/share/facebook/PersistentData/PersistentDataFactory.php +++ /dev/null @@ -1,65 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\PersistentData; - -use InvalidArgumentException; - -class PersistentDataFactory -{ - private function __construct() - { - // a factory constructor should never be invoked - } - - /** - * PersistentData generation. - * - * @param PersistentDataInterface|string|null $handler - * - * @throws InvalidArgumentException If the persistent data handler isn't "session", "memory", or an instance of Facebook\PersistentData\PersistentDataInterface. - * - * @return PersistentDataInterface - */ - public static function createPersistentDataHandler($handler) - { - if (!$handler) { - return session_status() === PHP_SESSION_ACTIVE - ? new FacebookSessionPersistentDataHandler() - : new FacebookMemoryPersistentDataHandler(); - } - - if ($handler instanceof PersistentDataInterface) { - return $handler; - } - - if ('session' === $handler) { - return new FacebookSessionPersistentDataHandler(); - } - if ('memory' === $handler) { - return new FacebookMemoryPersistentDataHandler(); - } - - throw new InvalidArgumentException('The persistent data handler must be set to "session", "memory", or be an instance of Facebook\PersistentData\PersistentDataInterface'); - } -} diff --git a/mayor-orig/www/include/share/facebook/PersistentData/PersistentDataInterface.php b/mayor-orig/www/include/share/facebook/PersistentData/PersistentDataInterface.php deleted file mode 100644 index 3517ee15..00000000 --- a/mayor-orig/www/include/share/facebook/PersistentData/PersistentDataInterface.php +++ /dev/null @@ -1,49 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\PersistentData; - -/** - * Interface PersistentDataInterface - * - * @package Facebook - */ -interface PersistentDataInterface -{ - /** - * Get a value from a persistent data store. - * - * @param string $key - * - * @return mixed - */ - public function get($key); - - /** - * Set a value in the persistent data store. - * - * @param string $key - * @param mixed $value - */ - public function set($key, $value); -} diff --git a/mayor-orig/www/include/share/facebook/PseudoRandomString/McryptPseudoRandomStringGenerator.php b/mayor-orig/www/include/share/facebook/PseudoRandomString/McryptPseudoRandomStringGenerator.php deleted file mode 100644 index bf573745..00000000 --- a/mayor-orig/www/include/share/facebook/PseudoRandomString/McryptPseudoRandomStringGenerator.php +++ /dev/null @@ -1,68 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\PseudoRandomString; - -use Facebook\Exceptions\FacebookSDKException; - -class McryptPseudoRandomStringGenerator implements PseudoRandomStringGeneratorInterface -{ - use PseudoRandomStringGeneratorTrait; - - /** - * @const string The error message when generating the string fails. - */ - const ERROR_MESSAGE = 'Unable to generate a cryptographically secure pseudo-random string from mcrypt_create_iv(). '; - - /** - * @throws FacebookSDKException - */ - public function __construct() - { - if (!function_exists('mcrypt_create_iv')) { - throw new FacebookSDKException( - static::ERROR_MESSAGE . - 'The function mcrypt_create_iv() does not exist.' - ); - } - } - - /** - * @inheritdoc - */ - public function getPseudoRandomString($length) - { - $this->validateLength($length); - - $binaryString = mcrypt_create_iv($length, MCRYPT_DEV_URANDOM); - - if ($binaryString === false) { - throw new FacebookSDKException( - static::ERROR_MESSAGE . - 'mcrypt_create_iv() returned an error.' - ); - } - - return $this->binToHex($binaryString, $length); - } -} diff --git a/mayor-orig/www/include/share/facebook/PseudoRandomString/OpenSslPseudoRandomStringGenerator.php b/mayor-orig/www/include/share/facebook/PseudoRandomString/OpenSslPseudoRandomStringGenerator.php deleted file mode 100644 index 4b4276dc..00000000 --- a/mayor-orig/www/include/share/facebook/PseudoRandomString/OpenSslPseudoRandomStringGenerator.php +++ /dev/null @@ -1,67 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\PseudoRandomString; - -use Facebook\Exceptions\FacebookSDKException; - -class OpenSslPseudoRandomStringGenerator implements PseudoRandomStringGeneratorInterface -{ - use PseudoRandomStringGeneratorTrait; - - /** - * @const string The error message when generating the string fails. - */ - const ERROR_MESSAGE = 'Unable to generate a cryptographically secure pseudo-random string from openssl_random_pseudo_bytes().'; - - /** - * @throws FacebookSDKException - */ - public function __construct() - { - if (!function_exists('openssl_random_pseudo_bytes')) { - throw new FacebookSDKException(static::ERROR_MESSAGE . 'The function openssl_random_pseudo_bytes() does not exist.'); - } - } - - /** - * @inheritdoc - */ - public function getPseudoRandomString($length) - { - $this->validateLength($length); - - $wasCryptographicallyStrong = false; - $binaryString = openssl_random_pseudo_bytes($length, $wasCryptographicallyStrong); - - if ($binaryString === false) { - throw new FacebookSDKException(static::ERROR_MESSAGE . 'openssl_random_pseudo_bytes() returned an unknown error.'); - } - - if ($wasCryptographicallyStrong !== true) { - throw new FacebookSDKException(static::ERROR_MESSAGE . 'openssl_random_pseudo_bytes() returned a pseudo-random string but it was not cryptographically secure and cannot be used.'); - } - - return $this->binToHex($binaryString, $length); - } -} diff --git a/mayor-orig/www/include/share/facebook/PseudoRandomString/PseudoRandomStringGeneratorFactory.php b/mayor-orig/www/include/share/facebook/PseudoRandomString/PseudoRandomStringGeneratorFactory.php deleted file mode 100644 index 412f4813..00000000 --- a/mayor-orig/www/include/share/facebook/PseudoRandomString/PseudoRandomStringGeneratorFactory.php +++ /dev/null @@ -1,101 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\PseudoRandomString; - -use Facebook\Exceptions\FacebookSDKException; -use InvalidArgumentException; - -class PseudoRandomStringGeneratorFactory -{ - private function __construct() - { - // a factory constructor should never be invoked - } - - /** - * Pseudo random string generator creation. - * - * @param PseudoRandomStringGeneratorInterface|string|null $generator - * - * @throws InvalidArgumentException If the pseudo random string generator must be set to "random_bytes", "mcrypt", "openssl", or "urandom", or be an instance of Facebook\PseudoRandomString\PseudoRandomStringGeneratorInterface. - * - * @return PseudoRandomStringGeneratorInterface - */ - public static function createPseudoRandomStringGenerator($generator) - { - if (!$generator) { - return self::detectDefaultPseudoRandomStringGenerator(); - } - - if ($generator instanceof PseudoRandomStringGeneratorInterface) { - return $generator; - } - - if ('random_bytes' === $generator) { - return new RandomBytesPseudoRandomStringGenerator(); - } - if ('mcrypt' === $generator) { - return new McryptPseudoRandomStringGenerator(); - } - if ('openssl' === $generator) { - return new OpenSslPseudoRandomStringGenerator(); - } - if ('urandom' === $generator) { - return new UrandomPseudoRandomStringGenerator(); - } - - throw new InvalidArgumentException('The pseudo random string generator must be set to "random_bytes", "mcrypt", "openssl", or "urandom", or be an instance of Facebook\PseudoRandomString\PseudoRandomStringGeneratorInterface'); - } - - /** - * Detects which pseudo-random string generator to use. - * - * @throws FacebookSDKException If unable to detect a cryptographically secure pseudo-random string generator. - * - * @return PseudoRandomStringGeneratorInterface - */ - private static function detectDefaultPseudoRandomStringGenerator() - { - // Check for PHP 7's CSPRNG first to keep mcrypt deprecation messages from appearing in PHP 7.1. - if (function_exists('random_bytes')) { - return new RandomBytesPseudoRandomStringGenerator(); - } - - // Since openssl_random_pseudo_bytes() can sometimes return non-cryptographically - // secure pseudo-random strings (in rare cases), we check for mcrypt_create_iv() next. - if (function_exists('mcrypt_create_iv')) { - return new McryptPseudoRandomStringGenerator(); - } - - if (function_exists('openssl_random_pseudo_bytes')) { - return new OpenSslPseudoRandomStringGenerator(); - } - - if (!ini_get('open_basedir') && is_readable('/dev/urandom')) { - return new UrandomPseudoRandomStringGenerator(); - } - - throw new FacebookSDKException('Unable to detect a cryptographically secure pseudo-random string generator.'); - } -} diff --git a/mayor-orig/www/include/share/facebook/PseudoRandomString/PseudoRandomStringGeneratorInterface.php b/mayor-orig/www/include/share/facebook/PseudoRandomString/PseudoRandomStringGeneratorInterface.php deleted file mode 100644 index 914ee3cf..00000000 --- a/mayor-orig/www/include/share/facebook/PseudoRandomString/PseudoRandomStringGeneratorInterface.php +++ /dev/null @@ -1,45 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\PseudoRandomString; - -/** - * Interface - * - * @package Facebook - */ -interface PseudoRandomStringGeneratorInterface -{ - /** - * Get a cryptographically secure pseudo-random string of arbitrary length. - * - * @see http://sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers/ - * - * @param int $length The length of the string to return. - * - * @return string - * - * @throws \Facebook\Exceptions\FacebookSDKException|\InvalidArgumentException - */ - public function getPseudoRandomString($length); -} diff --git a/mayor-orig/www/include/share/facebook/PseudoRandomString/PseudoRandomStringGeneratorTrait.php b/mayor-orig/www/include/share/facebook/PseudoRandomString/PseudoRandomStringGeneratorTrait.php deleted file mode 100644 index 0f587ea2..00000000 --- a/mayor-orig/www/include/share/facebook/PseudoRandomString/PseudoRandomStringGeneratorTrait.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\PseudoRandomString; - -trait PseudoRandomStringGeneratorTrait -{ - /** - * Validates the length argument of a random string. - * - * @param int $length The length to validate. - * - * @throws \InvalidArgumentException - */ - public function validateLength($length) - { - if (!is_int($length)) { - throw new \InvalidArgumentException('getPseudoRandomString() expects an integer for the string length'); - } - - if ($length < 1) { - throw new \InvalidArgumentException('getPseudoRandomString() expects a length greater than 1'); - } - } - - /** - * Converts binary data to hexadecimal of arbitrary length. - * - * @param string $binaryData The binary data to convert to hex. - * @param int $length The length of the string to return. - * - * @return string - */ - public function binToHex($binaryData, $length) - { - return \substr(\bin2hex($binaryData), 0, $length); - } -} diff --git a/mayor-orig/www/include/share/facebook/PseudoRandomString/RandomBytesPseudoRandomStringGenerator.php b/mayor-orig/www/include/share/facebook/PseudoRandomString/RandomBytesPseudoRandomStringGenerator.php deleted file mode 100644 index b5943f6f..00000000 --- a/mayor-orig/www/include/share/facebook/PseudoRandomString/RandomBytesPseudoRandomStringGenerator.php +++ /dev/null @@ -1,59 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\PseudoRandomString; - -use Facebook\Exceptions\FacebookSDKException; - -class RandomBytesPseudoRandomStringGenerator implements PseudoRandomStringGeneratorInterface -{ - use PseudoRandomStringGeneratorTrait; - - /** - * @const string The error message when generating the string fails. - */ - const ERROR_MESSAGE = 'Unable to generate a cryptographically secure pseudo-random string from random_bytes(). '; - - /** - * @throws FacebookSDKException - */ - public function __construct() - { - if (!function_exists('random_bytes')) { - throw new FacebookSDKException( - static::ERROR_MESSAGE . - 'The function random_bytes() does not exist.' - ); - } - } - - /** - * @inheritdoc - */ - public function getPseudoRandomString($length) - { - $this->validateLength($length); - - return $this->binToHex(random_bytes($length), $length); - } -} diff --git a/mayor-orig/www/include/share/facebook/PseudoRandomString/UrandomPseudoRandomStringGenerator.php b/mayor-orig/www/include/share/facebook/PseudoRandomString/UrandomPseudoRandomStringGenerator.php deleted file mode 100644 index 5ab434e6..00000000 --- a/mayor-orig/www/include/share/facebook/PseudoRandomString/UrandomPseudoRandomStringGenerator.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\PseudoRandomString; - -use Facebook\Exceptions\FacebookSDKException; - -class UrandomPseudoRandomStringGenerator implements PseudoRandomStringGeneratorInterface -{ - - use PseudoRandomStringGeneratorTrait; - - /** - * @const string The error message when generating the string fails. - */ - const ERROR_MESSAGE = 'Unable to generate a cryptographically secure pseudo-random string from /dev/urandom. '; - - /** - * @throws FacebookSDKException - */ - public function __construct() - { - if (ini_get('open_basedir')) { - throw new FacebookSDKException( - static::ERROR_MESSAGE . - 'There is an open_basedir constraint that prevents access to /dev/urandom.' - ); - } - - if (!is_readable('/dev/urandom')) { - throw new FacebookSDKException( - static::ERROR_MESSAGE . - 'Unable to read from /dev/urandom.' - ); - } - } - - /** - * @inheritdoc - */ - public function getPseudoRandomString($length) - { - $this->validateLength($length); - - $stream = fopen('/dev/urandom', 'rb'); - if (!is_resource($stream)) { - throw new FacebookSDKException( - static::ERROR_MESSAGE . - 'Unable to open stream to /dev/urandom.' - ); - } - - if (!defined('HHVM_VERSION')) { - stream_set_read_buffer($stream, 0); - } - - $binaryString = fread($stream, $length); - fclose($stream); - - if (!$binaryString) { - throw new FacebookSDKException( - static::ERROR_MESSAGE . - 'Stream to /dev/urandom returned no data.' - ); - } - - return $this->binToHex($binaryString, $length); - } -} diff --git a/mayor-orig/www/include/share/facebook/SignedRequest.php b/mayor-orig/www/include/share/facebook/SignedRequest.php deleted file mode 100644 index 6a175a0a..00000000 --- a/mayor-orig/www/include/share/facebook/SignedRequest.php +++ /dev/null @@ -1,326 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook; - -use Facebook\Exceptions\FacebookSDKException; - -/** - * Class SignedRequest - * - * @package Facebook - */ -class SignedRequest -{ - /** - * @var FacebookApp The FacebookApp entity. - */ - protected $app; - - /** - * @var string The raw encrypted signed request. - */ - protected $rawSignedRequest; - - /** - * @var array The payload from the decrypted signed request. - */ - protected $payload; - - /** - * Instantiate a new SignedRequest entity. - * - * @param FacebookApp $facebookApp The FacebookApp entity. - * @param string|null $rawSignedRequest The raw signed request. - */ - public function __construct(FacebookApp $facebookApp, $rawSignedRequest = null) - { - $this->app = $facebookApp; - - if (!$rawSignedRequest) { - return; - } - - $this->rawSignedRequest = $rawSignedRequest; - - $this->parse(); - } - - /** - * Returns the raw signed request data. - * - * @return string|null - */ - public function getRawSignedRequest() - { - return $this->rawSignedRequest; - } - - /** - * Returns the parsed signed request data. - * - * @return array|null - */ - public function getPayload() - { - return $this->payload; - } - - /** - * Returns a property from the signed request data if available. - * - * @param string $key - * @param mixed|null $default - * - * @return mixed|null - */ - public function get($key, $default = null) - { - if (isset($this->payload[$key])) { - return $this->payload[$key]; - } - - return $default; - } - - /** - * Returns user_id from signed request data if available. - * - * @return string|null - */ - public function getUserId() - { - return $this->get('user_id'); - } - - /** - * Checks for OAuth data in the payload. - * - * @return boolean - */ - public function hasOAuthData() - { - return $this->get('oauth_token') || $this->get('code'); - } - - /** - * Creates a signed request from an array of data. - * - * @param array $payload - * - * @return string - */ - public function make(array $payload) - { - $payload['algorithm'] = isset($payload['algorithm']) ? $payload['algorithm'] : 'HMAC-SHA256'; - $payload['issued_at'] = isset($payload['issued_at']) ? $payload['issued_at'] : time(); - $encodedPayload = $this->base64UrlEncode(json_encode($payload)); - - $hashedSig = $this->hashSignature($encodedPayload); - $encodedSig = $this->base64UrlEncode($hashedSig); - - return $encodedSig . '.' . $encodedPayload; - } - - /** - * Validates and decodes a signed request and saves - * the payload to an array. - */ - protected function parse() - { - list($encodedSig, $encodedPayload) = $this->split(); - - // Signature validation - $sig = $this->decodeSignature($encodedSig); - $hashedSig = $this->hashSignature($encodedPayload); - $this->validateSignature($hashedSig, $sig); - - $this->payload = $this->decodePayload($encodedPayload); - - // Payload validation - $this->validateAlgorithm(); - } - - /** - * Splits a raw signed request into signature and payload. - * - * @return array - * - * @throws FacebookSDKException - */ - protected function split() - { - if (strpos($this->rawSignedRequest, '.') === false) { - throw new FacebookSDKException('Malformed signed request.', 606); - } - - return explode('.', $this->rawSignedRequest, 2); - } - - /** - * Decodes the raw signature from a signed request. - * - * @param string $encodedSig - * - * @return string - * - * @throws FacebookSDKException - */ - protected function decodeSignature($encodedSig) - { - $sig = $this->base64UrlDecode($encodedSig); - - if (!$sig) { - throw new FacebookSDKException('Signed request has malformed encoded signature data.', 607); - } - - return $sig; - } - - /** - * Decodes the raw payload from a signed request. - * - * @param string $encodedPayload - * - * @return array - * - * @throws FacebookSDKException - */ - protected function decodePayload($encodedPayload) - { - $payload = $this->base64UrlDecode($encodedPayload); - - if ($payload) { - $payload = json_decode($payload, true); - } - - if (!is_array($payload)) { - throw new FacebookSDKException('Signed request has malformed encoded payload data.', 607); - } - - return $payload; - } - - /** - * Validates the algorithm used in a signed request. - * - * @throws FacebookSDKException - */ - protected function validateAlgorithm() - { - if ($this->get('algorithm') !== 'HMAC-SHA256') { - throw new FacebookSDKException('Signed request is using the wrong algorithm.', 605); - } - } - - /** - * Hashes the signature used in a signed request. - * - * @param string $encodedData - * - * @return string - * - * @throws FacebookSDKException - */ - protected function hashSignature($encodedData) - { - $hashedSig = hash_hmac( - 'sha256', - $encodedData, - $this->app->getSecret(), - $raw_output = true - ); - - if (!$hashedSig) { - throw new FacebookSDKException('Unable to hash signature from encoded payload data.', 602); - } - - return $hashedSig; - } - - /** - * Validates the signature used in a signed request. - * - * @param string $hashedSig - * @param string $sig - * - * @throws FacebookSDKException - */ - protected function validateSignature($hashedSig, $sig) - { - if (\hash_equals($hashedSig, $sig)) { - return; - } - - throw new FacebookSDKException('Signed request has an invalid signature.', 602); - } - - /** - * Base64 decoding which replaces characters: - * + instead of - - * / instead of _ - * - * @link http://en.wikipedia.org/wiki/Base64#URL_applications - * - * @param string $input base64 url encoded input - * - * @return string decoded string - */ - public function base64UrlDecode($input) - { - $urlDecodedBase64 = strtr($input, '-_', '+/'); - $this->validateBase64($urlDecodedBase64); - - return base64_decode($urlDecodedBase64); - } - - /** - * Base64 encoding which replaces characters: - * + instead of - - * / instead of _ - * - * @link http://en.wikipedia.org/wiki/Base64#URL_applications - * - * @param string $input string to encode - * - * @return string base64 url encoded input - */ - public function base64UrlEncode($input) - { - return strtr(base64_encode($input), '+/', '-_'); - } - - /** - * Validates a base64 string. - * - * @param string $input base64 value to validate - * - * @throws FacebookSDKException - */ - protected function validateBase64($input) - { - if (!preg_match('/^[a-zA-Z0-9\/\r\n+]*={0,2}$/', $input)) { - throw new FacebookSDKException('Signed request contains malformed base64 encoding.', 608); - } - } -} diff --git a/mayor-orig/www/include/share/facebook/Url/FacebookUrlDetectionHandler.php b/mayor-orig/www/include/share/facebook/Url/FacebookUrlDetectionHandler.php deleted file mode 100644 index 1d134ddc..00000000 --- a/mayor-orig/www/include/share/facebook/Url/FacebookUrlDetectionHandler.php +++ /dev/null @@ -1,182 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Url; - -/** - * Class FacebookUrlDetectionHandler - * - * @package Facebook - */ -class FacebookUrlDetectionHandler implements UrlDetectionInterface -{ - /** - * @inheritdoc - */ - public function getCurrentUrl() - { - return $this->getHttpScheme() . '://' . $this->getHostName() . $this->getServerVar('REQUEST_URI'); - } - - /** - * Get the currently active URL scheme. - * - * @return string - */ - protected function getHttpScheme() - { - return $this->isBehindSsl() ? 'https' : 'http'; - } - - /** - * Tries to detect if the server is running behind an SSL. - * - * @return boolean - */ - protected function isBehindSsl() - { - // Check for proxy first - $protocol = $this->getHeader('X_FORWARDED_PROTO'); - if ($protocol) { - return $this->protocolWithActiveSsl($protocol); - } - - $protocol = $this->getServerVar('HTTPS'); - if ($protocol) { - return $this->protocolWithActiveSsl($protocol); - } - - return (string)$this->getServerVar('SERVER_PORT') === '443'; - } - - /** - * Detects an active SSL protocol value. - * - * @param string $protocol - * - * @return boolean - */ - protected function protocolWithActiveSsl($protocol) - { - $protocol = strtolower((string)$protocol); - - return in_array($protocol, ['on', '1', 'https', 'ssl'], true); - } - - /** - * Tries to detect the host name of the server. - * - * Some elements adapted from - * - * @see https://github.com/symfony/HttpFoundation/blob/master/Request.php - * - * @return string - */ - protected function getHostName() - { - // Check for proxy first - $header = $this->getHeader('X_FORWARDED_HOST'); - if ($header && $this->isValidForwardedHost($header)) { - $elements = explode(',', $header); - $host = $elements[count($elements) - 1]; - } elseif (!$host = $this->getHeader('HOST')) { - if (!$host = $this->getServerVar('SERVER_NAME')) { - $host = $this->getServerVar('SERVER_ADDR'); - } - } - - // trim and remove port number from host - // host is lowercase as per RFC 952/2181 - $host = strtolower(preg_replace('/:\d+$/', '', trim($host))); - - // Port number - $scheme = $this->getHttpScheme(); - $port = $this->getCurrentPort(); - $appendPort = ':' . $port; - - // Don't append port number if a normal port. - if (($scheme == 'http' && $port == '80') || ($scheme == 'https' && $port == '443')) { - $appendPort = ''; - } - - return $host . $appendPort; - } - - protected function getCurrentPort() - { - // Check for proxy first - $port = $this->getHeader('X_FORWARDED_PORT'); - if ($port) { - return (string)$port; - } - - $protocol = (string)$this->getHeader('X_FORWARDED_PROTO'); - if ($protocol === 'https') { - return '443'; - } - - return (string)$this->getServerVar('SERVER_PORT'); - } - - /** - * Returns the a value from the $_SERVER super global. - * - * @param string $key - * - * @return string - */ - protected function getServerVar($key) - { - return isset($_SERVER[$key]) ? $_SERVER[$key] : ''; - } - - /** - * Gets a value from the HTTP request headers. - * - * @param string $key - * - * @return string - */ - protected function getHeader($key) - { - return $this->getServerVar('HTTP_' . $key); - } - - /** - * Checks if the value in X_FORWARDED_HOST is a valid hostname - * Could prevent unintended redirections - * - * @param string $header - * - * @return boolean - */ - protected function isValidForwardedHost($header) - { - $elements = explode(',', $header); - $host = $elements[count($elements) - 1]; - - return preg_match("/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i", $host) //valid chars check - && 0 < strlen($host) && strlen($host) < 254 //overall length check - && preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $host); //length of each label - } -} diff --git a/mayor-orig/www/include/share/facebook/Url/FacebookUrlManipulator.php b/mayor-orig/www/include/share/facebook/Url/FacebookUrlManipulator.php deleted file mode 100644 index daeab9c5..00000000 --- a/mayor-orig/www/include/share/facebook/Url/FacebookUrlManipulator.php +++ /dev/null @@ -1,167 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Url; - -/** - * Class FacebookUrlManipulator - * - * @package Facebook - */ -class FacebookUrlManipulator -{ - /** - * Remove params from a URL. - * - * @param string $url The URL to filter. - * @param array $paramsToFilter The params to filter from the URL. - * - * @return string The URL with the params removed. - */ - public static function removeParamsFromUrl($url, array $paramsToFilter) - { - $parts = parse_url($url); - - $query = ''; - if (isset($parts['query'])) { - $params = []; - parse_str($parts['query'], $params); - - // Remove query params - foreach ($paramsToFilter as $paramName) { - unset($params[$paramName]); - } - - if (count($params) > 0) { - $query = '?' . http_build_query($params, null, '&'); - } - } - - $scheme = isset($parts['scheme']) ? $parts['scheme'] . '://' : ''; - $host = isset($parts['host']) ? $parts['host'] : ''; - $port = isset($parts['port']) ? ':' . $parts['port'] : ''; - $path = isset($parts['path']) ? $parts['path'] : ''; - $fragment = isset($parts['fragment']) ? '#' . $parts['fragment'] : ''; - - return $scheme . $host . $port . $path . $query . $fragment; - } - - /** - * Gracefully appends params to the URL. - * - * @param string $url The URL that will receive the params. - * @param array $newParams The params to append to the URL. - * - * @return string - */ - public static function appendParamsToUrl($url, array $newParams = []) - { - if (empty($newParams)) { - return $url; - } - - if (strpos($url, '?') === false) { - return $url . '?' . http_build_query($newParams, null, '&'); - } - - list($path, $query) = explode('?', $url, 2); - $existingParams = []; - parse_str($query, $existingParams); - - // Favor params from the original URL over $newParams - $newParams = array_merge($newParams, $existingParams); - - // Sort for a predicable order - ksort($newParams); - - return $path . '?' . http_build_query($newParams, null, '&'); - } - - /** - * Returns the params from a URL in the form of an array. - * - * @param string $url The URL to parse the params from. - * - * @return array - */ - public static function getParamsAsArray($url) - { - $query = parse_url($url, PHP_URL_QUERY); - if (!$query) { - return []; - } - $params = []; - parse_str($query, $params); - - return $params; - } - - /** - * Adds the params of the first URL to the second URL. - * - * Any params that already exist in the second URL will go untouched. - * - * @param string $urlToStealFrom The URL harvest the params from. - * @param string $urlToAddTo The URL that will receive the new params. - * - * @return string The $urlToAddTo with any new params from $urlToStealFrom. - */ - public static function mergeUrlParams($urlToStealFrom, $urlToAddTo) - { - $newParams = static::getParamsAsArray($urlToStealFrom); - // Nothing new to add, return as-is - if (!$newParams) { - return $urlToAddTo; - } - - return static::appendParamsToUrl($urlToAddTo, $newParams); - } - - /** - * Check for a "/" prefix and prepend it if not exists. - * - * @param string|null $string - * - * @return string|null - */ - public static function forceSlashPrefix($string) - { - if (!$string) { - return $string; - } - - return strpos($string, '/') === 0 ? $string : '/' . $string; - } - - /** - * Trims off the hostname and Graph version from a URL. - * - * @param string $urlToTrim The URL the needs the surgery. - * - * @return string The $urlToTrim with the hostname and Graph version removed. - */ - public static function baseGraphUrlEndpoint($urlToTrim) - { - return '/' . preg_replace('/^https:\/\/.+\.facebook\.com(\/v.+?)?\//', '', $urlToTrim); - } -} diff --git a/mayor-orig/www/include/share/facebook/Url/UrlDetectionInterface.php b/mayor-orig/www/include/share/facebook/Url/UrlDetectionInterface.php deleted file mode 100644 index dca38a0c..00000000 --- a/mayor-orig/www/include/share/facebook/Url/UrlDetectionInterface.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ -namespace Facebook\Url; - -/** - * Interface UrlDetectionInterface - * - * @package Facebook - */ -interface UrlDetectionInterface -{ - /** - * Get the currently active URL. - * - * @return string - */ - public function getCurrentUrl(); -} diff --git a/mayor-orig/www/include/share/facebook/autoload.php b/mayor-orig/www/include/share/facebook/autoload.php deleted file mode 100644 index e0dd21c1..00000000 --- a/mayor-orig/www/include/share/facebook/autoload.php +++ /dev/null @@ -1,81 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ - -/** - * You only need this file if you are not using composer. - * Why are you not using composer? - * https://getcomposer.org/ - */ - -if (version_compare(PHP_VERSION, '5.4.0', '<')) { - throw new Exception('The Facebook SDK requires PHP version 5.4 or higher.'); -} - -require_once __DIR__ . '/polyfills.php'; - -/** - * Register the autoloader for the Facebook SDK classes. - * - * Based off the official PSR-4 autoloader example found here: - * https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader-examples.md - * - * @param string $class The fully-qualified class name. - * - * @return void - */ -spl_autoload_register(function ($class) { - // project-specific namespace prefix - $prefix = 'Facebook\\'; - - // For backwards compatibility - $customBaseDir = ''; - // @todo v6: Remove support for 'FACEBOOK_SDK_V4_SRC_DIR' - if (defined('FACEBOOK_SDK_V4_SRC_DIR')) { - $customBaseDir = FACEBOOK_SDK_V4_SRC_DIR; - } elseif (defined('FACEBOOK_SDK_SRC_DIR')) { - $customBaseDir = FACEBOOK_SDK_SRC_DIR; - } - // base directory for the namespace prefix - $baseDir = $customBaseDir ?: __DIR__ . '/'; - - // does the class use the namespace prefix? - $len = strlen($prefix); - if (strncmp($prefix, $class, $len) !== 0) { - // no, move to the next registered autoloader - return; - } - - // get the relative class name - $relativeClass = substr($class, $len); - - // replace the namespace prefix with the base directory, replace namespace - // separators with directory separators in the relative class name, append - // with .php - $file = rtrim($baseDir, '/') . '/' . str_replace('\\', '/', $relativeClass) . '.php'; - - // if the file exists, require it - if (file_exists($file)) { - require $file; - } -}); diff --git a/mayor-orig/www/include/share/facebook/polyfills.php b/mayor-orig/www/include/share/facebook/polyfills.php deleted file mode 100644 index 4a67d863..00000000 --- a/mayor-orig/www/include/share/facebook/polyfills.php +++ /dev/null @@ -1,49 +0,0 @@ -<?php -/** - * Copyright 2017 Facebook, Inc. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to - * use, copy, modify, and distribute this software in source code or binary - * form for use in connection with the web services and APIs provided by - * Facebook. - * - * As with any software that integrates with the Facebook platform, your use - * of this software is subject to the Facebook Developer Principles and - * Policies [http://developers.facebook.com/policy/]. This copyright notice - * shall be included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ - -/** - * @see https://github.com/sarciszewski/php-future/blob/master/src/Security.php#L37-L51 - */ -if (!function_exists('hash_equals')) { - function hash_equals($knownString, $userString) - { - if (function_exists('mb_strlen')) { - $kLen = mb_strlen($knownString, '8bit'); - $uLen = mb_strlen($userString, '8bit'); - } else { - $kLen = strlen($knownString); - $uLen = strlen($userString); - } - if ($kLen !== $uLen) { - return false; - } - $result = 0; - for ($i = 0; $i < $kLen; $i++) { - $result |= (ord($knownString[$i]) ^ ord($userString[$i])); - } - - // They are only identical strings if $result is exactly 0... - return 0 === $result; - } -} |