看起来您正在向该 URL 发出 GET 请求。OAuth2 令牌端点仅支持 POST 请求。此外,参数必须在请求正文中发送,而不是作为查询字符串的一部分。使用 curl 命令行实用程序,它看起来像这样:
curl -X POST -D - https://api.soundcloud.com/oauth2/token -F'client_id=YOUR_CLIENT_ID' \
-F'client_secret=YOUR_CLIENT_SECRET' -F'grant_type=password' \
-F'username=YOUR_USERNAME' -F'password=YOUR_PASSWORD'
从技术上讲,我们应该发回 405 而不是 404。我会为此提交一个错误,感谢您指出。
您绝对不想分发您的客户端凭据。您的客户端 ID 和客户端密码将您的应用程序唯一标识到 SoundCloud。如果您要分发这些,任何其他应用程序开发人员都可以使用这些值来创建一个看起来像您的应用程序。如果其中一个应用程序违反了 SoundClouds 服务条款,我们将不得不切断对客户端 ID 的访问,从而也禁用您的应用程序。
此外,虽然支持用户凭据流,但仅在无法使用更流行的授权代码流时才建议使用。大多数用户更熟悉授权代码流程。它允许您让用户授权访问您的应用程序,而无需他们向您的应用程序提供凭据。不推荐使用用户凭据流程的主要原因是通过 Facebook Connect 注册的用户没有密码,因此无法将您的应用程序连接到他们的 SoundCloud 帐户。
对于桌面/移动应用程序,您可以在应用程序注册过程中指定一个重定向 URI,该 URI 使用自定义协议方案(例如 myapp://),它将控制权返回给您的应用程序。执行此操作的确切方法因平台而异。这意味着您不必拥有正在运行的 Web 服务来调解身份验证流程。
如果您有任何后续问题,请告诉我,我将编辑我的答案以进行详细说明。希望有帮助!