php
  • oauth
  • soundcloud
  • 2013-03-27 97 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

    相关问题