首页 > 解决方案 > 向 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;

API 的错误向我展示了这一点: 在此处输入图像描述

或者我得到一个“1”作为回应。

我希望我能得到一些不错的建议:)

标签: phpcurlrequestspotify

解决方案


有一个用于 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();
}

有关更多说明和示例,请查看文档


推荐阅读