Ruby 具有Spotify客户端id和secret的Curl post请求返回无效客户端

Ruby 具有Spotify客户端id和secret的Curl post请求返回无效客户端,ruby,authentication,curl,encoding,base64,Ruby,Authentication,Curl,Encoding,Base64,我正在关注Spotify,但我所有的curl请求每次都返回{error:invalid_client}。以下是Spotify的说明: 请求将包括请求正文中的参数: 授予\u类型-设置为“客户端\u凭据”。 此POST请求的标头必须包含以下参数: 授权-包含客户端ID和客户端密钥的Base 64编码字符串。该字段的格式必须为:Authorization:Basic 它们还包括一个curl请求示例: $ curl -H "Authorization: Basic ZjM4ZjAw...WY

我正在关注Spotify,但我所有的curl请求每次都返回{error:invalid_client}。以下是Spotify的说明:

请求将包括请求正文中的参数:

授予\u类型-设置为“客户端\u凭据”。 此POST请求的标头必须包含以下参数:

授权-包含客户端ID和客户端密钥的Base 64编码字符串。该字段的格式必须为:Authorization:Basic 它们还包括一个curl请求示例:

$ curl -H "Authorization: Basic ZjM4ZjAw...WY0MzE=" -d grant_type=client_credentials https://accounts.spotify.com/api/token
按照他们的示例,到目前为止,我尝试了以下curl请求:

客户端id和客户端密码 两个base64分别编码 只有一个或另一个被编码 两者都用冒号编码为一个字符串 两者都编码为一个字符串,不带冒号 以上每一项都包含一个重新生成的客户端密码
我使用Ruby的Base64encode64方法进行编码。还是不走运。有什么有用的提示吗?

好的,我已经开始工作了-将我的客户机id和客户机机密(用冒号分隔)传递给Base64.strict\u encode64而不是Base64.encode64,然后将其传递给上面的curl请求将得到一个带有访问令牌的200响应。显然,编码64是不够的

我在终端中运行curl命令时遇到了这个错误

-bash: unexpected EOF while looking for matching `"'

通过使用单引号而不是双引号来解决此问题。

curl请求是否适用于您?你能发布你想要使用的Ruby代码吗?curl请求不起作用;在实际的Rails应用程序中尝试之前,我一直在尝试让它工作。但是我想出来了——你可以在下面看到我的答案。