2013-03-28 2 views
1

Trying Spotify API 1.x. Мой манифестSpotify API 1.x получить сеанс пользователя

"Dependencies": { 
     "api": "1.20.1", 
     "views": "1.24.1" 
    } 

Имея проблемы получения текущего сеанса с новым Spotify API. Session Docs

Через некоторое время я получил информацию о пользователе с этим:

require(['$api/models','$api/models#User','$api/models#Session'], function(models) { 
    var user = models.User.fromURI('spotify:user:@'); 
    user.load('username', 'name').done(function(u) { 
     userUid = u.identifier; 
    }); 
}); 

Но сессия не метод загрузки (получение ошибки броска) и при взгляде на models.Session я не могу se любые значения ??? :(

ответ

1

я изменил на manifest.json версии API для:

"api": "1.3.0" 

Теперь я могу получить информацию из сессии, например, моя страна:

var userCountry = models.session.country; 
1

Я найти документацию Spotify немного вводит в заблуждение в отношении Сессий. Есть ряд вещей, которые я обнаружил по пробным ошибкам и Google, а не из документов.

Как @Backer говорит, ch ange версии API до 1.3.0 (или выше, если доступно). Обратите внимание, что для этого необходимо перезапустить Spotify, чтобы он вступил в силу.

Затем вы можете получить доступ к объекту Session как это (здесь, «сессия» должна быть в нижнем регистре):

models.session.load('product','connection','device','user').done(function(s){ 
    console.log('sess:',s) 
}); 

Объект пользователя будет частью этого, но это не будет заселена со свойствами, если вы не загружаете их. Ниже приведен пример извлечения подмножества свойств из сессии и пользователя:

require([ 
'$api/models','$api/models#Session' 
], function(models) { 
app.user = {}; 
    models.session.load('product','connection','device','user').done(function(sess){ 
     sess.user.load('name', 'username', 'subscribed').done(function(user){ 
      app.user.name = user.name; // string 
      app.user.username = user.username; // string 
      app.user.subscribed = user.subscribed; // boolean 
     }); 
     app.user.connection = sess.connection; // string 
     app.user.country = sess.country; // string ISO-2 
     app.user.device = sess.device; // string 
     app.user.language = sess.language; // string ISO-2 
     app.user.product = sess.product; // string 

    }); 
}); 

Весь объект Сессия:

Session 
_done: 65535 
_listening: true 
_ob: Object 
_obcount: 1 
_requestArgs: Array[0] 
_requestName: "session_event_wait" 
capabilities: Object 
connecting: false 
connection: "wlan" 
country: "SE" 
developer: true 
device: "desktop" 
incognito: false 
language: "en" 
online: true 
product: "open" 
resolution: 1 
streaming: "enabled" 
testGroup: 000 
user: User 
    _done: 255 
    currentUser: true 
    identifier: "longcodehere" 
    image: "http://profile-images.scdn.co/artists/default/anotherlongcodehere" 
    images: Array[2] 
    name: "My Name" 
    subscribed: false 
    uri: "spotify:user:@" 
    username: "myusername" 
    __proto__: c 
    __proto__: c 
Смежные вопросы