Ejemplo n.º 1
0
 /**
  * API method helpers
  **/
 protected function callUrl($url, $method, $callParams = array(), $forceAuth = false)
 {
     $headers = array('X-Twitter-Content-Type-Accept' => 'application/x-www-form-urlencoded');
     if ($this->token || $forceAuth) {
         $headers['Authorization'] = $this->buildAuthorizationHeader($url, $method, $callParams);
     }
     try {
         $request = new HttpRequest();
         $request->multipart = $this->multipart;
         $request->followLocation = $this->followLocation;
         $formattedHeaders = array();
         foreach ($headers as $k => $v) {
             $formattedHeaders[] = "{$k}: {$v}";
         }
         list($response, $httpInfo) = $request->send($url, $method, $callParams, $formattedHeaders);
     } catch (HTTPRequestException $e) {
         switch ($e->getHttpCode()) {
             case 400:
                 $message = "Invalid Twitter request";
                 break;
             case 401:
                 $message = "Unauthorised Twitter request";
                 break;
             case 403:
                 $message = "Twitter refused this request";
                 break;
             case 413:
                 $message = "Twitter request too large";
                 break;
             case 500:
                 $message = 'Twitter’s having server troubles. Check their status: http://status.twitter.com/';
                 break;
             case 502:
                 $message = "Twitter may be down or undergoing an upgrade, or this was just a slow query. Try again later";
                 break;
             case 503:
                 $message = "Twitter’s temporarily overloaded. Try again";
                 break;
             default:
                 $message = "Twitter request failed";
         }
         if ($eMessage = $e->getMessage()) {
             $message .= " - {$eMessage}";
         }
         throw new TwitterException($message, $e->getCode(), $e->getMethod(), $e->getUrl(), $callParams, $headers, $e->getResponse(), $e->getResponseHeaders(), $e->getHttpError());
     }
     return array($response, $httpInfo);
 }