2013-12-15 44 views
0

我正在研究一個wordpress插件,它通過phpFlickr類的一個克隆來調用flickr API。下面的代碼 被定製爲使用wordpress http wrapper函數來調用flickr。我打印了我傳入的http POST 參數,但在每種情況下,Flickr服務都表示'方法不受支持'。 任何人都可以發現可能導致此問題的任何問題嗎?通過Wordpress HTTP調用Flickr API

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] => 

回答