2013-12-15 2 views
0

Я работаю над плагином wordpress, который вызывает flickr API через клон класса phpFlickr. Код ниже настроен для использования функций оболочки Wordpress http для вызова flickr. Я напечатал параметры http POST , которые я передаю, но в каждом случае служба Flickr говорит, что «метод не поддерживается». Может ли кто-нибудь выявить любую проблему, которая может быть причиной этого?Вызов Flickr API через Wordpress HTTP

function request ($command, $args = array(), $nocache = false) { 
      if (substr($command,0,7) != "flickr.") { 
        $command = "flickr." . $command; 
      } 

      //Process arguments, including method and login data. 
      $args = array_merge(array("method" => $command, "format" => "php_serial", "api_key" => $this->api_key), $args); 
      if (!empty($this->token)) { 
        $args = array_merge($args, array("auth_token" => $this->token)); 
      } elseif (!empty($_SESSION['phpFlickr_auth_token'])) { 
        $args = array_merge($args, array("auth_token" => $_SESSION['phpFlickr_auth_token'])); 
      } 
      ksort($args); 
      $auth_sig = ""; 

      // http request arguments 
      $body = array(); 
      $headers = array(); 

      if (!($this->response = $this->getCached($args)) || $nocache) { 
        foreach ($args as $key => $data) { 
          $auth_sig .= $key . $data; 
          $body = array_merge(array($key => $data),$body); 
        } 
        if (!empty($this->secret)) { 
          $api_sig = md5($this->secret . $auth_sig); 
          $body = array_merge(array("api_sig" => $api_sig),$body); 
        } 
        $args = array_merge($args, $body); 

        // set any headers 
        $headers = array_merge(array('Connection' => 'Keep-Alive'),$headers); 
        $args = array_merge($args, $headers); 

        error_log('http args '.print_r($args,true)); 

        //Sends a request to Flickr's REST endpoint via POST. 
        //$this->response = $this->wpRequest->request($this->REST,$args); 
        $this->response = wp_remote_post($this->REST,$args); 

HTTP-аргументы POST

[15-Dec-2013 16:40:36 UTC] http args Array 
    (
    [api_key] => .........4e8ca6671ab35280c....... 
    [format] => php_serial 
    [method] => flickr.people.getPublicPhotos 
    [page] => 10 
    [per_page] => 14 
    [user_id] => [email protected] 
    [api_sig] => 4de7adfc3aa7bc10167fee1741da5e84 
    [Connection] => Keep-Alive 
    ) 

Отклик это

[15-Dec-2013 16:40:36 UTC] Array 
    (
     [headers] => Array 
      (
       [date] => Sun, 15 Dec 2013 16:40:36 GMT 
       [p3p] => policyref="http://info.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV" 
       [content-length] => 128 
       [cache-control] => private 
       [x-served-by] => www44.flickr.bf1.yahoo.com 
       [vary] => Accept-Encoding 
       [content-type] => text/xml; charset=utf-8 
       [age] => 0 
       [server] => ATS/4.0.2 
       [via] => http/1.1 r02.ycpi.ams.yahoo.net (ApacheTrafficServer/4.0.2 [c sSf ]) 
      ) 

     [body] => <xml version="1.0" encoding="utf-8" ?> 
    <rsp stat="fail"> 
      <err code="112" msg="Method &quot;unknown&quot; not found" /> 
    </rsp> 

     [response] => Array 
      (
       [code] => 200 
       [message] => OK 
      ) 

     [cookies] => Array 
      (
      ) 

     [filename] => 

ответ

Смежные вопросы