Soundcloud OAuth2 API:用户连接后获取invalid_scope错误

时间:2012-08-07 19:29:42

标签: oauth-2.0 soundcloud

我正在尝试实现Soundcloud连接并遇到一个奇怪的问题。

我做的第一件事就是将我的用户发送到

https://soundcloud.com/connect?client_id=MY_CLIENT_ID&redirect_uri=http://myredirecturl.example.com&state=RANDOM_STRING&display=page&response_type=code&scope=email

当用户连接时,他们会被重定向到

http://myredirecturl.example.com?error=invalid_scope&error_description=The+requested+scope+is+invalid%2C+unknown%2C+or+malformed.&state=RANDOM_STRING

如果我使用scope=*,也会发生同样的情况。

但是,如果我使用scope=non-expiring它让我通过,但我需要用户电子邮件,并且该类型的范围没有足够的资助。

我认为这与我的应用处于开发模式有关,但是Osman at Soundcloud said it doesn't

感谢。

2 个答案:

答案 0 :(得分:4)

“电子邮件”范围不适用于所有集成。它用于一些自定义集成,为我们提供了可接受的服务/隐私政策条款。使用SoundCloud API无法获取用户的电子邮件地址。

但是,您应该能够使用'*'范围来获取到期的访问令牌。我会与我们的应用团队核实,看看为什么这会给你一个错误。一旦我在那里获得更多信息,我就会编辑我的答案。

出于您的目的,我会留在“非过期”范围内,只是提示用户输入他们的电子邮件地址(为他们提供一种方式来同意您的使用条款/隐私信息)。

答案 1 :(得分:0)

使用scope=*有时不起作用,因为网址编码不正确。如果在使用*通配符时遇到此错误,请尝试使用urlencode()(对于PHP)等函数正确编码网址。