php - 向 spotify 授权 API 卷曲 GET 请求
问题描述
我需要一些关于我对 Spotify API 的 Curl GET 请求的帮助。API 具有三种不同的方式/端点来获得授权。
我阅读了一些文章,以找到发送请求的正确语法。但我总是得到一个错误。如果我将 url 发布到我的浏览器中,它可以完美地工作,也可以使用重定向 uri。但它不适用于 Curl GET 请求。
这听起来很愚蠢,但我花了最后三天来解决这个问题。
我的代码:
<?php
$client_id = 'myClientID';
$redirect_url = 'http://mywebsite/first/page.php';
$scope = 'user-read-private%20user-read-email';
$data = array(
'client_id' => $client_id,
'response_type' => 'code',
'redirect_uri' => $redirect_url,
'state' => stateHash(), // Create a random hash
'scope' => $scope,
'show_dialog' => 'true'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://accounts.spotify.com/authorize' . http_build_query($data));
curl_setopt($ch, CURLOPT_HTTPGET, TRUE);
$result=curl_exec($ch);
echo $result;
或者我得到一个“1”作为回应。
我希望我能得到一些不错的建议:)
解决方案
有一个用于 Spotify Web API 的包尝试使用它
composer require jwilsson/spotify-web-api-php
在使用 Spotify Web API 之前,您需要在Spotify 的开发者网站上创建一个应用程序。
显示用户个人资料的简单示例:
require 'vendor/autoload.php';
$session = new SpotifyWebAPI\Session(
'CLIENT_ID',
'CLIENT_SECRET',
'REDIRECT_URI'
);
$api = new SpotifyWebAPI\SpotifyWebAPI();
if (isset($_GET['code'])) {
$session->requestAccessToken($_GET['code']);
$api->setAccessToken($session->getAccessToken());
print_r($api->me());
} else {
$options = [
'scope' => [
'user-read-email',
],
];
header('Location: ' . $session->getAuthorizeUrl($options));
die();
}
有关更多说明和示例,请查看文档。
推荐阅读
- javascript - 我如何使用 require() 通过添加本地项目 json 文件路径来读取本地 json 文件?
- spring-boot - 使用带有由 KakfaTemplate 的发送方法返回的 ListenableFuture 的回调时无法捕获响应
- javascript - waitForSelector 超时选项不起作用
- java - Spring boot 和 java 8:有没有办法动态构建字符串?
- reactjs - ReactJs 的字形图标
- java - 使用 LZ4Factory:JNI 的 Datastax Java 驱动程序
- javascript - hasOwnProperty 没有返回正确的值
- websocket - 可以同时使用 socket.io 和 ws 吗?
- reactjs - 如何避免组件条件渲染之间丢失状态
- stripe-payments - 使用谷歌支付令牌测试条带api支付