当前位置: 首页 > 知识库问答 >
问题:

我使用php连接到Spotify的API与php和客户端凭据流

夏侯元忠
2023-03-14

我刚开始使用某种REST协议,在从cURL请求中取回访问令牌时遇到了困难。

<?php

/* Spotify Application Client ID and Secret Key */
$client_id     = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; 
$client_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

/* Get Spotify Authorization Token */
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,            'https://accounts.spotify.com/api/token' );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_POST,           1 );
curl_setopt($ch, CURLOPT_POSTFIELDS,     'grant_type=client_credentials' );
curl_setopt($ch, CURLOPT_HTTPHEADER,     array('Authorization: Basic '.base64_encode($client_id.':'.$client_secret)));

$result=curl_exec($ch);
$json = json_decode($result, true);

 echo "Results of json:  ". + $json['access_token'];

/* Get Spotify Artist Photo */
echo "<pre>";
exec('curl -i "https://api.spotify.com/v1/search?<br>q=Maycon+%26+Vinicius+&limit=1&type=artist" -H "Accept: application/json" -H "Authorization: Bearer '.$json['access_token'].'" -H "Content-Type: application/json" 2>&1', $pp);
echo implode("\r\n", $pp);
?>

共有1个答案

黄德明
2023-03-14

您是否尝试过其他请求并遇到类似的身份验证错误?为了测试,我对您的查询进行了一些简化,以便在我的系统上测试它,它返回了一个艺术家,所以看起来它是工作的。

curl-i“https://api.spotify.com/v1/search?q=maycon+%26+vinicius+&limit=1&type=artist”-h“accept:application/json”-h“authorization:barer$accesstoken”-h“content-type:application/json”

 类似资料:
  • 在此处为客户端凭据流使用Spotify文档: 我能够在谷歌应用程序脚本(Javascript)中创建API请求。 我对两件事感到困惑,请能够回答这两件事。 1). Spotify文档声明在授权标头中的客户端凭据之前输入“Basic”。 然而,当我运行这段代码时,我得到了这个错误 如果我在使用客户端凭据流,为什么它认为我在使用承载令牌?(同样,如果我将身份验证更改为Bearer,我会收到401错误“

  • 我已经读了很多关于CORS,角,节点等的东西。老实说,我很困惑这些我应该使用哪一个,我不知道如何使用。有人能帮我简化一下吗?

  • Spotify获取播放列表文档:https://developer.Spotify.com/web-api/get-playlists-tracks/ Spotify获取客户端凭据文档:https://developer.Spotify.com/web-api/authorization-guide/ 第一个问题,是否可以使用客户机凭据流获得用户播放列表曲目?我使用这个流,因为我无法弹出一个登录框

  • 我的服务器上再次收到错误。 { “错误”: “invalid_client” } 我已经编码到base64并将域列入了白名单,但仍然得到相同的错误。我会感激任何帮助,这让我发疯了,哈哈。

  • 我正试图用Node.js和Express编写一个实用程序,它将使用Spotify API。然而,我一直在试图找出使用Express的“客户端凭证流”来获得使用API的访问令牌的最佳方式... https://developer.spotify.com/documentation/general/guides/authorization-guide/#client-credentials-flow

  • 直截了当的问题,希望有一个直截了当的答案。我试图使用request通过Node.js实现客户端凭证流。这是我的代码 无论我做什么,响应体总是 我尝试过使用 curl 提出请求,结果相同。 这意味着这是凭据的问题。我肯定为我的应用程序使用了正确的客户端ID和客户端秘密,这让我相信是编码导致了问题。 我的编码正确吗?如果是这样,还有什么原因呢?