Soundcloud身份验证和API

时间:2013-06-04 16:25:15

标签: api soundcloud

我是soundcloud的新手。我已经完成了我的研究,但是soundcloud文档缺乏严重性。

我正在尝试理解API。如果有人可以帮助回答以下问题,那将会有所帮助。

  1. 我可以通过JavaScript API访问我的曲目并检索曲目的标题吗?

  2. 我从哪里获取“用户ID”?

  3. 我创建了一个应用。重定向URI是强制性的吗?

  4. 我尝试使用以下https://api.soundcloud.com/tracks?client_id=MY_CLIENT_ID。我得到一些其他会员的信息。是的,我用我的新应用程序中的client_id替换了MY_CLIENT_ID。

  5. 我尝试使用https://api.soundcloud.com/oauth2/token?client_id=xxx&client_secret=xxx&grant_type=password&username=xxx&password=xxx(使用我的应用client_id,client_secret,用户名和密码,我得到了404 ...不确定原因。

  6. 任何让我走向正确方向的回应都会很棒。谢谢!

2 个答案:

答案 0 :(得分:2)

  

我可以通过JavaScript API访问我的曲目并检索曲目的标题吗?

不,没有办法只检索标题,你将获得JSON或XML中的整个声音表示,具体取决于请求中发送的format参数。

  

我从哪里获取“用户ID”?

您可以使用/resolve端点从用户,您或其他任何人的永久链接中检索ID,或者,如果您授权用户,则可以点击/me端点以获取授权用户。

  

我创建了一个应用。重定向URI是强制性的吗?

  

我尝试使用以下https://api.soundcloud.com/tracks?client_id=MY_CLIENT_ID。我得到一些其他会员的信息。是的,我用我的新应用程序中的client_id替换了MY_CLIENT_ID。

client_id是您的应用程序的ID,它是SoundCloud API的“客户端”(在这种情况下是“服务器”),您的用户是其他东西。如果您在提及“我的客户ID”时正在讨论“授权”用户,那么您可以向/me/tracks查询属于该用户的曲目。

  

我尝试使用https://api.soundcloud.com/oauth2/token?client_id=xxx&client_secret=xxx&grant_type=password&username=xxx&password=xxx(使用我的应用client_id,client_secret,用户名和密码,我得到了404 ...不确定原因。

请关注oauth2端点的the documentation - 请求应该是POST而不是GET,您需要提交code参数,您可以从代码中获取该值在您的重定向URI上运行 - 用户成功登录后,将使用code作为GET参数请求该URL,以便您可以使用它。

答案 1 :(得分:1)

除了@gryzzly的回答。您可以在没有令牌的情况下访问API,但只会将其提供给您的帐户。

正如您可以看到here,有一个用户名/密码授权选项,here您可以看到示例,如何使用SDK执行此操作。

当您发出POST请求时,请在帖子请求的正文中执行所有参数:

wget --post-data="client_id=ID&client_secret=SECRET&grant_type=password&username=USERNAME&password=PASSWORD" https://api.soundcloud.com/oauth2/token

这是PHP请求示例:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.soundcloud.com/oauth2/token");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "client_id=ID&client_secret=SECRET&grant_type=password&username=USERNAME&password=PASSWORD");
$result = curl_exec($ch);
curl_close($ch);