2015-06-12 3 views
0

Я пытаюсь получить доступ к трекам списка воспроизведения пользователей, используя поток учетных данных клиента.Spotify Web API - Client Credentials - Доступ к плейлистам пользователей

Spotify получения списка воспроизведения документации: https://developer.spotify.com/web-api/get-playlists-tracks/

Spotify получение учетных данных клиента документация: https://developer.spotify.com/web-api/authorization-guide/

Первый вопрос, возможно ли, чтобы получить пользователи плейлист треков с помощью учетных данных клиента потока? Я использую этот поток, так как я не могу открыть окно входа для входа в систему.

Во-вторых, я попытался с помощью https://github.com/jwilsson/spotify-web-api-php учетных данных клиента потока (Docs: http://jwilsson.github.io/spotify-web-api-php/authorization.html) при практически скопировав код в нижней части этой страницы:

<?php 

include('vendor/autoload.php'); 

$session = new SpotifyWebAPI\Session('Tobys client id', 'Tobys secret', 'http://localhost/callback'); 
// Request a access token with optional scopes 
$scopes = array(
    'playlist-read-private', 
    'user-read-private' 
); 

$session->requestCredentialsToken($scopes); 
$accessToken = $session->getAccessToken(); // We're good to go! 

// Set the code on the API wrapper 
$api->setAccessToken($accessToken); 

$playlists = $api->getUserPlaylists('USER_ID', array(
    'limit' => 5 
)); 

foreach ($playlists->items as $playlist) { 
    echo '<a href="' . $playlist->external_urls->spotify . '">' . $playlist->name . '</a> <br>'; 
} 

Это дает мне Notice: Undefined variable: api in /var/www/html/dev/testing.php on line 16

Я также попытался создать переменную API с помощью $api = new SpotifyWebAPI\SpotifyWebAPI();, но это говорит, что мне нужна информация пользователя/токены.

Спасибо.

+1

Для $ api попробуйте обратиться к этому https://github.com/jwilsson/spotify-web-api-php/blob/master/tests/SpotifyWebAPITest.php – Thomas

ответ

1

Первый вопрос: можно ли получить треки плей-листа пользователей, используя клиентские учетные данные?

Да, для получения треков для списка воспроизведения не требуется аутентификация пользователя как часть токена доступа.

Я также попытался создать переменную API с помощью $ апи = новый SpotifyWebAPI \ SpotifyWebAPI(); но это говорит, что мне нужна информация о пользователе/​​ токенов.

Глядя на код (Session class, SpotifyWebapi class), это выглядит, как вы должны установить это, делая

$api = new SpotifyWebAPI\SpotifyWebAPI(); 
$session = new SpotifyWebAPI\Session($clientId, $clientSecret, $redirectUri); 
$api->setAccessToken($session->getAccessToken()); 

Когда это настроено, вы должны быть хорошо использовать метод getUserPlaylists как вы» в вашем примере кода.

+0

Спасибо за помощь. Можете подтвердить это. Когда я меняю USER_ID в приведенном выше коде на свое имя пользователя, он работает отлично. Однако, когда я меняю это на чужое имя пользователя, которого я знаю, есть плейлисты, списки воспроизведения не отображаются ... Является ли плейлист захватывающим только для тех, кто владеет идентификатором клиента? Если да, то как я могу получить Плейлисты других пользователей? Еще раз спасибо за помощь. –

+0

Использование токена доступа, полученного с использованием потока учетных данных клиента, приведет только к возврату публичных плейлистов USER_ID - я полагаю, что USER_ID, который вы предоставляете, имеет только личные плейлисты. Единственный способ получить частные плейлисты - использовать токен доступа, аутентифицированный пользователем, и разрешить пользователю разрешать область «список воспроизведения-чтение-приват». –

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