2012-08-07 172 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。

相關問題