我正在尝试实现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。
感谢。
答案 0 :(得分:4)
“电子邮件”范围不适用于所有集成。它用于一些自定义集成,为我们提供了可接受的服务/隐私政策条款。使用SoundCloud API无法获取用户的电子邮件地址。
但是,您应该能够使用'*'范围来获取到期的访问令牌。我会与我们的应用团队核实,看看为什么这会给你一个错误。一旦我在那里获得更多信息,我就会编辑我的答案。
出于您的目的,我会留在“非过期”范围内,只是提示用户输入他们的电子邮件地址(为他们提供一种方式来同意您的使用条款/隐私信息)。
答案 1 :(得分:0)
使用scope=*
有时不起作用,因为网址编码不正确。如果在使用*
通配符时遇到此错误,请尝试使用urlencode()(对于PHP)等函数正确编码网址。