SoundCloud API / SDK开发者,
似乎SoundCloud iOS SDK有点长,即SCLoginViewController。它显然需要更新,并且在出现时会出现装饰性问题。
相反,我正在考虑在SC准备的网址上使用openURL:
[SCSoundCloud requestAccessWithPreparedAuthorizationURLHandler:^(NSURL* preparedURL) {
[[UIApplication sharedApplication] openURL:preparedURL];
}];
然后抓住结果我的iOS应用程序的handleURL调用(因为URL返回
myapp://oauth?code=0a83...
所以我对SC API开发的问题是:我如何将NSURL
放到[SCSoundCloud account]
返回适当的帐户。
提前致谢!!
答案 0 :(得分:0)
好的,所以在深入了解OAuth2Client(https://github.com/nxtbgthng/OAuth2Client)之后,我有了答案......
典型oauth流的第一步是使用param指定重定向URL的GET。用户通过此初始GET进行身份验证后,主机会使用其他URL参数code
重定向到指定的URL。在iOS上,这通常采用myapp://oauth&code=ZZZZ
。
此时,应用程序会提取代码并将其用作后续POST请求的参数,然后返回oauth访问令牌(access_token
)。使用OAuth2Client的流程,当您的应用通过UIApplicationDelegate的myapp://oauth&code=ZZZZ
获取网址application:openURL:sourceApplication:annotation:(id)
时,您需要随后致电:
[[NXOAuth2AccountStore sharedStore] handleRedirectURL:inURL];
这将使OAuth2Client拉出code
参数,形成新的POST URL和参数,在内部执行POST,处理响应(挖出access_token
等),然后发送通知NXOAuth2AccountDidChangeAccessTokenNotification
。
在SoundCloud iOS SDK中,他们的SCLoginViewController
会抓取myapp://oauth&code=ZZZZ
步,这就是为什么你永远不会看到这一步。
答案 1 :(得分:0)
我在使用SoundCloud SDK及其所有依赖项时遇到了一些麻烦。我没有使用SCSoundCloud requestAccessWithPreparedAuthorizationURLHandler
,而是想自己准备网址(除了使用openURL而不是SDK方法)。
如何准备网址?即打开SoundCloud的URL是什么样的?