2017-01-30 3 views
0

Я попытался добавить трек совместного воспроизведения, это мой код доступа лексемдобавить трек в плейлист Spotify API веб

$credentials = 'client_id:client_secret'; 

$headers = array(
      'Accept: */*', 
      'Content-Type: application/x-www-form-urlencoded', 
      'User-Agent: runscope/0.1', 
      'Authorization: Basic '.base64_encode($credentials)); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'https://accounts.spotify.com/api/token'); 
curl_setopt($ch, CURLOPT_HTTPHEADER,$headers); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS,'grant_type=client_credentials'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$response = curl_exec($ch); 
$response = json_decode($response, true); 
echo $token = $response['access_token']; 
curl_close($ch); 

в моей странице пользователь не зарегистрирован, поэтому я создал Толковый плейлист

и это моя add playlist функция

var addplaylist = function (id,token) { 

     $.ajax({ 
     dataType: 'text', 
     type: 'post', 
     url: 'https://api.spotify.com/v1/users/entelperú/playlists/6sU8XOS7BLicR3COsc0Rhp/tracks?uris=spotify:track:'+ id, 
     headers: { 
      Authorization: "Bearer "+token, 
     },success: function (response) { 
      alert(response); 
     } 
    }); 
    }; 

но он возвращает этот

{ "error": { "status": 403, "message": "Для этого запроса требуется идентификация пользователя". }}

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

ответ

0

{"error": {"status": 403, "message": "Для этого запроса требуется идентификатор пользователя ". }}

Для запроса, который вы делаете, до Add a Track to a Playlist, требуется токен доступа, подключенный к пользователю.

Доступ к токенам, которые вы используете, может поступать из трех разных потоков oAuth 2.0. Один из этих потоков, поток учетных данных клиента, возвращает токены анонимного доступа. Вернее, токены доступа, которые просто не подключены ни к одному пользователю. Узнайте больше о потоках в Authorization Guide.

Для некоторых конечных точек хорошо использовать токены анонимного доступа. Как получение списков воспроизведения. Но многие действия, такие как добавление треков, следующих артистов и сохранение дорожек, требуют от пользователя предоставить вашему приложению явное разрешение действовать от их имени. Это разрешение также называется Scopes.

Следовательно, вам нужно использовать другой поток oAuth 2.0, чем тот, который вы используете сейчас. Какой из них зависит от того, какой тип приложения вы строите. Важно то, что вам нужно, чтобы пользователь одобрял действие, выполняемое вашим приложением.

+0

Michael, но в mi app пользователь не логгин, поэтому никогда не получайте токен для пользователя, плейлист - это мое, мне нужно, как добавить трек? –

+0

Ну, вам нужен токен доступа, который подключен к пользователю. Этот пользователь может быть вашим. Вы можете хранить токен доступа где-нибудь в своем сервисе и использовать его, когда это необходимо. Похоже, вы хотите посмотреть поток авторизационного кода, поскольку вам может понадобиться токен обновления. Прочтите Руководство по авторизации на сайте разработчика, ответы на которые вам нужны. –

+0

Действительно благодарю Майкла –

Смежные вопросы