来自 C# 的 Spotify web API 无作用域
Spotify web API from C# without scope
我正在尝试访问 Spotify 网络 API(遵循此文档:https://developer.spotify.com/web-api/authorization-guide/#authorization_code_flow)。
我只需要访问 public 数据,例如专辑名称和封面。要访问它,我不需要任何用户范围,所以我认为最好的方法是 "Authorization code" 没有指定范围。
我发现的唯一示例使用客户端凭据和用户范围,因此用户必须授予访问权限。但在这种情况下,它不应该。
我已经设法从我的 get 请求中得到响应,但它是一个 html 页面,所以我需要使用一个 http 服务器并监听 httpServer.OnAuth。
这会导致 Web 浏览器打开,并且用户接受访问,但我认为这对于 public 访问不是必需的。
所以,我的问题是...有没有什么方法可以在用户不执行任何操作的情况下获得在 spotify 网络 api 上查询 public 数据的授权?也许是网络请求和响应?或者甚至可以使用完全不同的方法来访问这些 spotify public 数据...我很困惑,我认为这应该是可能的!
感谢您的宝贵时间!
我自己最近也做了同样的事情,和你一样,我也对如何在没有用户输入 his/hers 凭据的情况下查询 Spotify API 感到困惑。让我感到困惑的是不同授权流程的命名:授权代码、客户端凭证和隐式授权。一旦您意识到 client in client credentials 不是用户中的客户端,而是您的应用程序中的客户端发展,它变得更加清晰。
这里描述的过程非常好:https://developer.spotify.com/web-api/authorization-guide/#client-credentials-flow
但简而言之,这些是您需要完成的步骤:
- 在 https://developer.spotify.com/my-applications/#!/applications 为自己创建一个应用程序(这是您获得稍后需要的 Client ID 和 Client Secret 的地方API 调用)
- 访问API时,首先需要向https://accounts.spotify.com/api/token发送一个POST请求,并带有body参数grant_type =client_credentials 和一个 header 参数 授权:基本 Base64(Client_Id:Client_Secret)
这个 returns 一个 access_token 将用于进一步的 API 调用(有效期为一个小时)
- 现在您可以查询 API(例如使用 https://api.spotify.com/v1/search?query=[your_query]&type=track 搜索曲目),提供 access_token 作为 header参数授权:承载[access_token]
您可以继续对多个 API 调用使用相同的 access_token,只要它仍然有效
我正在尝试访问 Spotify 网络 API(遵循此文档:https://developer.spotify.com/web-api/authorization-guide/#authorization_code_flow)。 我只需要访问 public 数据,例如专辑名称和封面。要访问它,我不需要任何用户范围,所以我认为最好的方法是 "Authorization code" 没有指定范围。
我发现的唯一示例使用客户端凭据和用户范围,因此用户必须授予访问权限。但在这种情况下,它不应该。
我已经设法从我的 get 请求中得到响应,但它是一个 html 页面,所以我需要使用一个 http 服务器并监听 httpServer.OnAuth。 这会导致 Web 浏览器打开,并且用户接受访问,但我认为这对于 public 访问不是必需的。
所以,我的问题是...有没有什么方法可以在用户不执行任何操作的情况下获得在 spotify 网络 api 上查询 public 数据的授权?也许是网络请求和响应?或者甚至可以使用完全不同的方法来访问这些 spotify public 数据...我很困惑,我认为这应该是可能的!
感谢您的宝贵时间!
我自己最近也做了同样的事情,和你一样,我也对如何在没有用户输入 his/hers 凭据的情况下查询 Spotify API 感到困惑。让我感到困惑的是不同授权流程的命名:授权代码、客户端凭证和隐式授权。一旦您意识到 client in client credentials 不是用户中的客户端,而是您的应用程序中的客户端发展,它变得更加清晰。
这里描述的过程非常好:https://developer.spotify.com/web-api/authorization-guide/#client-credentials-flow
但简而言之,这些是您需要完成的步骤:
- 在 https://developer.spotify.com/my-applications/#!/applications 为自己创建一个应用程序(这是您获得稍后需要的 Client ID 和 Client Secret 的地方API 调用)
- 访问API时,首先需要向https://accounts.spotify.com/api/token发送一个POST请求,并带有body参数grant_type =client_credentials 和一个 header 参数 授权:基本 Base64(Client_Id:Client_Secret)
这个 returns 一个 access_token 将用于进一步的 API 调用(有效期为一个小时) - 现在您可以查询 API(例如使用 https://api.spotify.com/v1/search?query=[your_query]&type=track 搜索曲目),提供 access_token 作为 header参数授权:承载[access_token]
您可以继续对多个 API 调用使用相同的 access_token,只要它仍然有效