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/FacebookClient.php | |
parent | c76a004b0135786f2742283f8d5f917106f58bd8 (diff) | |
download | mayor-f51c9ed2abe5c68211bb3736be5f70b1fe2c9ec0.tar.gz mayor-f51c9ed2abe5c68211bb3736be5f70b1fe2c9ec0.zip |
további rendrakás
Diffstat (limited to 'mayor-orig/www/include/share/facebook/FacebookClient.php')
-rw-r--r-- | mayor-orig/www/include/share/facebook/FacebookClient.php | 250 |
1 files changed, 0 insertions, 250 deletions
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); - } -} |