php
  • oauth
  • soundcloud
  • 2013-03-27 96 views 1 likes 
    1

    我一直試圖讓這個工作在過去的一天左右沒有任何運氣。我終於將代碼簡化爲最低限度,似乎無法找到解決方案。401訪問令牌設置過程中

    $ callbackURL被設置爲相同的頁面,因此它將此頁面調回並在Soundcloud確認步驟後成功返回。

    <?php 
    require_once ("inc/Soundcloud.php"); 
    
    $client_id = 'CLIENT_ID'; 
    $secret = 'SECRET_KEY'; 
    $callbackURL = "CALL_BACK_URL"; 
    
    if (!isset($_GET['code'])) { 
        $client = new Services_Soundcloud($client_id, $secret, $callbackURL); 
        $client -> setCurlOptions(array(CURLOPT_FOLLOWLOCATION => 1, CURLOPT_CAINFO => $_SERVER['DOCUMENT_ROOT'] . '\\audio\\lib\\inc\\cacert.pem')); 
    
        if (!isset($accessToken)) { 
         $authorizeUrl = $client -> getAuthorizeUrl(array('scope' => 'non-expiring')); 
         echo "<a href='$authorizeUrl'>Connect</a>"; 
        } 
    
    } else { 
    
        $client = new Services_Soundcloud($client_id, $secret, $callbackURL); 
        $client -> setCurlOptions(array(CURLOPT_FOLLOWLOCATION => 1, CURLOPT_CAINFO => $_SERVER['DOCUMENT_ROOT'] . '\\audio\\lib\\inc\\cacert.pem')); 
        $accessToken = $client -> accessToken($_GET['code']); 
        echo "Token: $accessToken"; 
        $client -> setAccessToken($accessToken["access_token"]); 
    } 
    ?> 
    

    錯誤:

    [27-Mar-2013 16:02:59 America/New_York] PHP Fatal error: Uncaught exception 'Services_Soundcloud_Invalid_Http_Response_Code_Exception' with message 'The requested URL responded with HTTP code 401.' in D:\web\audio\lib\inc\Soundcloud.php:941 
    Stack trace: 
    #0 D:\web\audio\lib\inc\Soundcloud.php(817): Services_Soundcloud->_request('https://api.sou...', Array) 
    #1 D:\web\audio\lib\inc\Soundcloud.php(332): Services_Soundcloud->_getAccessToken(Array, Array) 
    #2 D:\web\audio\lib\auth.php(20): Services_Soundcloud->accessToken('...') 
    #3 {main} 
        thrown in D:\web\audio\lib\inc\Soundcloud.php on line 941 
    

    的問題是我不斷地得到了$客戶端 - >的accessToken($ _ GET [ '碼'])的步驟,儘管$ _GET [ '代碼' 401錯誤]正確設置。如果我刪除了CURLOPT_CAINFO,那麼我會得到「響應代碼0」的問題,但我已經過去了。

    任何幫助,非常感謝。

    IIS與PHP 5.4

    編輯:問題與爲捲曲PEM文件的絕對路徑解析。它在我們的測試設置中不一致,因爲我們試圖使用相對路徑而不是絕對路徑。詳細運行CURL後,我得出了結論。此外,Soundcloud遇到了難以調試此問題的問題。

    回答

    0

    上述代碼在發佈此問題後間歇性開始工作,問題似乎與Soundcloud的服務器或某些奇怪的事情有關。不知道它是如何修復的,但是在0代碼更改的情況下刷新返回了一個令牌試圖再次給了我一個401.不知道原因,但上面的代碼應該給你你的令牌(最終)。

    0

    您使用SDK時不需要的設置捲曲選項。

    這裏還有一些更多的文檔。

    https://github.com/mptre/php-soundcloud

    +0

    在Windows上,不幸的是需要有時供應的.pem文件捲曲。 – 2013-05-15 15:52:00

    相關問題