2012-08-07 157 views
4

我正在尝试实现Soundcloud连接并出现奇怪的问题。Soundcloud OAuth2 API:用户连接后出现invalid_scope错误

我首先要做的是我的用户发送到

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我的应用程序之中。

谢谢。

回答

4

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

您应该然而,能够使用“*”的范围得到一个到期的访问令牌。我会与我们的应用程序团队核对,看看为什么这会给你一个错误。一旦我有更多的信息,我会编辑我的答案。

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

+3

谢谢保罗。正如我通过电子邮件所说:这个想法是让用户使用Facebook,Twitter和Soundcloud登录我的网站(只需要电子邮件和密码)。在实施过程中,我注意到Twitter不会给我用户的电子邮件,所以我放弃了它,因为让用户使用外部服务连接到自己的网站的关键就是加速注册过程(不是吗? )。如果我仍然需要询问他们的电子邮件地址,那么这个问题就会消失。 – luchomolina 2012-08-09 17:51:06

0

使用scope=*有时不起作用,因为该网址无法正确编码。如果在使用*通配符时出现此错误,请尝试使用urlencode()(对于PHP)等功能正确编码该url。

相关问题