2013-01-16 130 views
1

我正在爲使用PHP編寫的SoundCloud開發應用程序,並使用php-soundcloud庫。然而Soundcloud解決問題

echo $soundcloud->get('me'); 
echo $soudcloud->get('users/12345678'); 

,下面的調用是不工作:

成功後,已經實例化的Services_Soundcloud例如,我可以做呼叫像下面

echo $soundcloud->get('resolve', array('url' => 'https://soundcloud.com/webfordreams')); 

我得到的錯誤是:

Services_Soundcloud_Invalid_Http_Response_Code_Exception:請求的URL使用HTTP cod進行響應e 302.在Services_Soundcloud - > _ request()(../php-soundcloud/Services/Soundcloud.php的第933行)。

經過幾個小時的調試,我決定尋求幫助,因爲我真的不明白我做錯了什麼。

任何人都可以幫助我,告訴我如何得到正確的答案嗎?

回答

1

您收到的「HTTP/1.1 302」響應是根據api的適當響應。 如果你察看了一個滿PHP異常,你會在迴應主體中得到這樣的:

[httpBody:protected] => {"status":"302 -Found","location":"https://api.soundcloud.com/users/25071103"} 

爲了讓捲曲跟着你需要傳遞CURLOPT_FOLLOWLOCATION選項同時呼籲的SoundCloud的get()函數的重定向。

$result = $scloud->get('resolve', array('url' => 'https://soundcloud.com/webfordreams'), array(CURLOPT_FOLLOWLOCATION => TRUE)); 

我不是太肯定的語法雖然但你最終想結束了是這樣在的SoundCloud的_request()函數:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 

希望有人有更多這方面的經驗會出現,並給你適當的語法,而不是你必須修補SoundCloud SDK本身。

1

從什麼Francis.G在說你正在尋找的語法領先的是:

$soundcloud->get('resolve', array('url' => 'https://soundcloud.com/webfordreams'), array(CURLOPT_FOLLOWLOCATION => true); 

唯一的變化是在捲曲OPS陣列傳遞到get()功能作爲第三個參數的定義。