2017-06-16 59 views
0

我試圖訪問Spotify Web API(按照此文檔:https://developer.spotify.com/web-api/authorization-guide/#authorization_code_flow)。 我只需訪問公共數據,如專輯名稱和封面。要訪問它,我不需要任何用戶範圍,所以我認爲最好的方法是「授權碼」,沒有指定範圍。來自C#的Spotify Web API沒有範圍

我發現使用客戶端憑證和用戶範圍,所以它的mandatoryfor用戶提供訪問的onlye例子。但在這種情況下,它不應該是。

我已經成功地從我的GET請求的響應,但它是一個HTML頁面,所以我需要使用一個HTTP服務器,並聽取httpServer.OnAuth。 這會導致Web瀏覽器打開,並且用戶接受訪問,但我認爲這對於公衆訪問而言不是必需的。

所以,我的問題是...有沒有什麼辦法讓授權查詢的公共數據Spotify的網絡API,無需用戶進行任何操作?也許與網絡請求和響應?或者甚至用完全不同的方法來訪問這些Spotify公共數據......我很困惑,我認爲這應該是可能的!

謝謝你的時間!

回答

1

我最近剛剛做了同樣的事情,就像你我也有點困惑如何查詢Spotify API,而無需用戶輸入他/她的憑據。令我困惑的是,不同授權流程的命名是:授權代碼,客戶端憑證和隱式授權。只要你意識到客戶端客戶端憑據不是在用戶中的客戶端,而是在您正在開發的應用程序中的客戶端,它會變得更加清晰。

的過程是很好說明如下:https://developer.spotify.com/web-api/authorization-guide/#client-credentials-flow

但總之,這些都是你需要經過以下步驟:

  1. https://developer.spotify.com/my-applications/#!/applications創建自己的應用程序(這是你在哪裏得到的客戶端ID客戶端祕密需要以後的API調用)
  2. 當訪問API,你首先需要發送POST請求https://accounts.spotify.com/api/token用車身參數grant_type = client_credentials和頭參數授權:基本的Base64(CLIENT_ID:Client_Secret)
    這將返回的access_token您可以使用它進行進一步的API調用(這將是有效的一小時)
  3. 現在您可以查詢API(例如搜索使用https://api.spotify.com/v1/search?query=[your_query]&type=track)的軌道,提供的access_token作爲頭參數授權:承載[的access_token]
    您可以繼續使用相同的access_token多個API調用,只要它仍然是有效的
+0

這就是我正在尋找的,謝謝!我會試試看看它是否有效 – WaLi