无需用户交互的自动Soundcloud PHP Api身份验证

Alp*_*Alp 5 php authentication api oauth-2.0 soundcloud

在我的应用程序中,我想将Soundcloud API与我自己的Soundcloud用户一起使用.Soundcloud API身份验证过程涉及将用户重定向到Soundcloud主页,登录并授权应用程序,以便该页面可以为此用户使用API​​.

我想自动完成整个过程,因为我自己的用户是唯一获得身份验证的用户.那可能吗?

到目前为止,这是我的代码:

    $soundcloud = new \Services_Soundcloud(
        '**',
        '**',
        'http://**'
    );

    $authorizeUrl = $soundcloud->getAuthorizeUrl();

    $accessToken = $soundcloud->accessToken();

    try {
        $me = json_decode($soundcloud->get('me'), true);
    } catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) {
        exit($e->getMessage());
    }
Run Code Online (Sandbox Code Playgroud)

但该行$accessToken = $soundcloud->accessToken();抛出异常:

The requested URL responded with HTTP code 401.
500 Internal Server Error - Services_Soundcloud_Invalid_Http_Response_Code_Exception 
Run Code Online (Sandbox Code Playgroud)

Str*_*rae 1

我正在寻找同样的东西,但是根据soundcloud 的 api(检查没有 SoundCloud 连接屏幕的身份验证段落):

// this example is not supported by the PHP SDK
Run Code Online (Sandbox Code Playgroud)

..并且 Javascript 也不支持。

我尝试使用 python 进行身份验证:

# create client object with app and user credentials
client = soundcloud.Client(client_id='YOUR_CLIENT_ID',
                           client_secret='YOUR_CLIENT_SECRET',
                           username='YOUR_USERNAME',
                           password='YOUR_PASSWORD')
Run Code Online (Sandbox Code Playgroud)

..然后上传python方法:

# upload audio file
track = client.post('/tracks', track={
    'title': 'This is my sound',
    'asset_data': open('file.mp3', 'rb')
})
Run Code Online (Sandbox Code Playgroud)

而且效果很好。

所以,目前,你有两种方法:

  1. 使用另一种语言,Python 或 Ruby(唯一两个真正支持此功能的 sdk)或使用小型 python/ruby 脚本作为满足此特殊需求的桥梁;
  2. 将此功能添加到 PHP SDK(我正在尝试快速完成,如果成功,我将分享;)