通过 Unity 连接移动应用程序时如何从 Soundcloud 接收回调
How to receive a callback from Soundcloud when connecting by Unity for mobile apps
我有一个用 Unity 制作的应用程序,可以让您混合歌曲。我正在为 Android 和 iOS.
开发一个 "upload to Soundcloud" 按钮以包含在此应用程序中
将用户引导至 SoundCloud 的 "Connect" window 后,我无法收到来自 Soundcloud 的响应。我用这样的东西打开 Soundcloud 连接页面。浏览器打开正确,我可以用这个登录
Application.OpenURL("https://soundcloud.com/connect?"
+ "client_id=[my_client_id]"
+ "&redirect_uri=my.app://callback"
+ "&display=popup"
+ "&response_type=token"
+ "&scope=non-expiring");
我已经为我的 iOS 和 Android 应用程序创建了一个自定义方案,以便在连接后重定向到我的应用程序。这也有效,我的应用程序在点击 Soundcloud 页面中的 "Connect" 后重新打开。
我现在需要身份验证代码或令牌来请求访问令牌才能上传我的歌曲。但是在我的应用程序中被重定向后,我不知道如何接收验证码。肯定是和://callbacklink有关,但是没找到怎么弄。我需要为此编写特定于平台的代码吗?
如有任何帮助,我们将不胜感激!
回调应该包含一个代码供您用来创建令牌
调用回调 URL 时会附加一个代码:
http://YOUR_CALLBACK_URL?code=CODE_RETURNED_FROM_SOUNDCLOUD
提取从 url 返回的代码后,您可以使用它向 soundcloud 发出请求以获取授权令牌
示例请求使用 curl(使用 PHP)
curl -X POST 'https://api.soundcloud.com/oauth2/token'
-F 'client_id=YOUR_CLIENT_ID'
-F 'client_secret=YOUR_CLIENT_SECRET'
-F 'grant_type=authorization_code'
-F 'redirect_uri=YOUR_CALLBACK_URL'
-F 'code=THE_VALUE_OF_THE_CODE_RETURNED'
$data = array(
'code' => VALUE_OF_THE_CODE_RETURNED,
'client_id' => YOUR_CLIENT_ID,
'client_secret' => YOUR_CLIENT_SECRET,
'redirect_uri' => YOUR_CALLBACK_URL,
'grant_type' => 'authorization_code'
);
我将以下选项与 curl
一起使用
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
如果成功你应该会收到这样的东西(例子是JSON)
{
"access_token":"ACCESS_TOKEN_VALUE",
"expires_in":21599,
"scope":"*",
"refresh_token":"REFRESH_TOKEN_VALUE"
}
感谢 SteveE 的回复,但这不是我的问题。
问题是我的 Android 和 iOS 应用程序都需要一个深度链接实现来接收来自 Soundcloud 的回调。我需要一些东西来捕捉 onCreate 方法中的意图,该方法包含 Soundcloud 在 Android 上发送的数据,并捕捉对 application:openURL:options 的调用:iOS.[=10 上的 du UIApplicationDelegate =]
为此,我们需要两个平台的本地插件,现在我们可以接收 Soundcloud 回调并检查我们的授权码以继续上传歌曲的过程。
我有一个用 Unity 制作的应用程序,可以让您混合歌曲。我正在为 Android 和 iOS.
开发一个 "upload to Soundcloud" 按钮以包含在此应用程序中将用户引导至 SoundCloud 的 "Connect" window 后,我无法收到来自 Soundcloud 的响应。我用这样的东西打开 Soundcloud 连接页面。浏览器打开正确,我可以用这个登录
Application.OpenURL("https://soundcloud.com/connect?"
+ "client_id=[my_client_id]"
+ "&redirect_uri=my.app://callback"
+ "&display=popup"
+ "&response_type=token"
+ "&scope=non-expiring");
我已经为我的 iOS 和 Android 应用程序创建了一个自定义方案,以便在连接后重定向到我的应用程序。这也有效,我的应用程序在点击 Soundcloud 页面中的 "Connect" 后重新打开。
我现在需要身份验证代码或令牌来请求访问令牌才能上传我的歌曲。但是在我的应用程序中被重定向后,我不知道如何接收验证码。肯定是和://callbacklink有关,但是没找到怎么弄。我需要为此编写特定于平台的代码吗?
如有任何帮助,我们将不胜感激!
回调应该包含一个代码供您用来创建令牌
调用回调 URL 时会附加一个代码:
http://YOUR_CALLBACK_URL?code=CODE_RETURNED_FROM_SOUNDCLOUD
提取从 url 返回的代码后,您可以使用它向 soundcloud 发出请求以获取授权令牌
示例请求使用 curl(使用 PHP)
curl -X POST 'https://api.soundcloud.com/oauth2/token'
-F 'client_id=YOUR_CLIENT_ID'
-F 'client_secret=YOUR_CLIENT_SECRET'
-F 'grant_type=authorization_code'
-F 'redirect_uri=YOUR_CALLBACK_URL'
-F 'code=THE_VALUE_OF_THE_CODE_RETURNED'
$data = array(
'code' => VALUE_OF_THE_CODE_RETURNED,
'client_id' => YOUR_CLIENT_ID,
'client_secret' => YOUR_CLIENT_SECRET,
'redirect_uri' => YOUR_CALLBACK_URL,
'grant_type' => 'authorization_code'
);
我将以下选项与 curl
一起使用 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
如果成功你应该会收到这样的东西(例子是JSON)
{
"access_token":"ACCESS_TOKEN_VALUE",
"expires_in":21599,
"scope":"*",
"refresh_token":"REFRESH_TOKEN_VALUE"
}
感谢 SteveE 的回复,但这不是我的问题。
问题是我的 Android 和 iOS 应用程序都需要一个深度链接实现来接收来自 Soundcloud 的回调。我需要一些东西来捕捉 onCreate 方法中的意图,该方法包含 Soundcloud 在 Android 上发送的数据,并捕捉对 application:openURL:options 的调用:iOS.[=10 上的 du UIApplicationDelegate =]
为此,我们需要两个平台的本地插件,现在我们可以接收 Soundcloud 回调并检查我们的授权码以继续上传歌曲的过程。