Я использую php для подключения API-интерфейса spotify к PHP и с потоком учетных данных клиента - PullRequest
0 голосов
/ 26 октября 2019

Я новичок в использовании своего рода протокола REST, и мне не удается получить токен доступа из запроса cURL.

Используется WAMP. Я уже включил расширение 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);
?>

Я получаю ошибку:

"" status ": 400," message ":" Поддерживается только действительная аутентификация на носителе ""

Когда я пытаюсь распечатать результаты моей переменной ресурса json $json[access_token], она печатает 0.

Вот полное сообщение об ошибке.

HTTP / 2 400
www-authenticate: Bearer realm = "spotify", error = "invalid_request",
error_description = "Поддерживается только действительная аутентификация на носителе"
access-control-allow-origin: *
access-control-allow-headers: Accept, App-Platform, Authorization, Content-
Type, Origin, Retry-After, Spotify-App-Version
access-control-allow-методы: GET, POST, OPTIONS, PUT, DELETE, PATCH
учетные данные контроля доступа: истина
максимальный возраст доступа: 604800
тип содержимого: application / json
длина содержимого: 99
дата: сб, 26 октября 2019 15:55:39 GMT
через: 1.1 google
alt-svc: clear

1 Ответ

0 голосов
/ 31 октября 2019

Вы пробовали другие запросы и сталкивались с подобными ошибками аутентификации? Чтобы проверить, я взял ваш запрос и немного упростил его, чтобы протестировать его в моей системе, и он вернул одного художника, так что похоже, что он работает.

curl -i "https://api.spotify.com/v1/search?q=Maycon+%26+Vinicius+&limit=1&type=artist" -H "Accept: application/json" -H "Authorization: Bearer $AccessToken" -H "Content-Type: application/json"

...