尝试访问 SoundCloud API (https://api.soundcloud.com/tracks.json) 中的公共端点,将帐户的 nil 发送到 SoundCloudAPI 库。
API响应:
error: Error Domain=NXOAuth2HTTPErrorDomain Code=401 "HTTP Error: 401" UserInfo=0x7556ff0 {NSLocalizedDescription=HTTP Error: 401}
我引用了他们的 GitHub 存储库的一般使用指南(https://github.com/soundcloud/CocoaSoundCloudAPI/blob/master/GeneralUsage.md):
无需账户(nil)即可调用此方法,实现匿名 请求或使用您从 [SCSoundCloud 帐户] 获得的帐户。
正如我在 http://developers.soundcloud.com 中看到的,我可以在没有 OAuth 的情况下使用资源。
有什么想法吗?
您必须将
?consumer_key=APP_KEY
附加到请求的 URL,例如:https://api.soundcloud.com/tracks.json?consumer_key=APP_KEY
我在他们有点废弃的 Google 群组页面中找到了这一点的确认:https://groups.google.com/forum/?fromgroups#!topic/soundcloudapi/ptBbe_TWSj8
这似乎是 github 上一般使用页面的一个奇怪的遗漏,除非在他们的开发者网站上出现错误,否则也被遗漏了。
编辑
我确实遇到了关于此的另一条信息,开发者网站确实提到了
client_id
GET 参数,这与consumer_key不同,但是,如果我们能够确认是否使用consumer_key
或client_id
,那就太好了
对于未经授权的公共 API 调用。
SoundCloud API 库在收到 nil 帐户参数后没有将其(无论哪一个合适的)附加到 URL 中,这似乎也有点奇怪。如果用户帐户对象丢失,自动切换到正确的 api 调用似乎是合乎逻辑的。