Прямой вопрос, надеюсь, с прямым ответом. Я пытаюсь реализовать stream учетных данных клиента через Node.js, используя запрос. Вот мой код
var request = require('request'); var payload = config.spotify.clientID + ":" + config.spotify.clientSecret; var encodedPayload = new Buffer(payload).toString("base64"); var opts = { url: "https://accounts.spotify.com/api/token", method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded", "Authorization": "Bearer " + encodedPayload }, body: "grant_type=client_credentials&scope=playlist-modify-public playlist-modify-private" }; request(opts, function (err, res, body) { console.log('error', err); console.log('status', res.statusCode); console.log('body', body); });
Независимо от того, что я делаю, тело ответа всегда
{"error":"invalid_client"}
Я попытался сделать запрос, используя curl, с тем же результатом.
$ curl -X POST -H 'Authorization: Bearer ' -d 'grant_type=client_credentials&scope=playlist-modify-public playlist-modify-private' https://accounts.spotify.com/api/token
Это означало бы, что это проблема с полномочиями. Я определенно использую правильный clientID и clientSecret для своего приложения, что заставляет меня думать, что это проблема, вызывающая проблему.
Имею ли я право кодирования? Если да, то что еще может быть причиной?
замещать
"Authorization": "Bearer " + ...
с
"Authorization": "Basic " + ...
и посмотреть, работает ли он лучше.