Announcements

Help Wizard

Step 1

NEXT STEP

FAQs

Please see below the most popular frequently asked questions.

Loading article...

Loading faqs...

VIEW ALL

Ongoing Issues

Please see below the current ongoing issues which are under investigation.

Loading issue...

Loading ongoing issues...

VIEW ALL

Get user's playlists API bug

Solved!

Get user's playlists API bug

Plan

Free

Country

Ukraine

Device

MacBookPro Retina, on Chrome

Operating System

(iOS )

 

My Question or Issue:

 

Hi, guys! I'm a developer building a non-commercial ReactJs app to showcase my skills of working with APIs and AJAX requests. 

Here's the problem I encountered:

One of my functions make a call to 

GET https://api.spotify.com/v1/users/{user_id}/playlists

in order to get the list of playlists, a user has in Spotify.

While the second call to the same endpoint returns the correct list of playlists, the first call always returns the same JSON consisting of 2 playlists, which aren't actually in the user's library (I checked this bug with 2 accounts currently and had the same outcome every time). Here is the JSON I get :

  1. (2) [{…}, {…}]
    1. 0:
      1. collaborative: false
      2. description: ""
      3. external_urls: {spotify: ""}
      4. href: "https://api.spotify.com/v1/playlists/1Wjl5nNjiOZJDAuHBvSDIe"
      5. id: "1Wjl5nNjiOZJDAuHBvSDIe"
      6. images: (3) [{…}, {…}, {…}]
      7. name: "nirvana prefes"
      8. owner: {display_name: "undefined", external_urls: {…}, href: "https://api.spotify.com/v1/users/undefined", id: "undefined", type: "user", …}
      9. primary_color: null
      10. public: true
      11. snapshot_id: "MTMsZjUxMmZjMDg4ODIyYTAyNjZmZjJhNTNmY2JhMmUyOGNhYzc1M2JkNQ=="
      12. tracks: {href: "https://api.spotify.com/v1/playlists/1Wjl5nNjiOZJDAuHBvSDIe/tracks", total: 10}
      13. type: "playlist"
      14. uri: "spotify:playlist:1Wjl5nNjiOZJDAuHBvSDIe"
      15. __proto__: Object
    2. 1:
      1. collaborative: false
      2. description: ""
      3. external_urls: {spotify: ""}
      4. href: "https://api.spotify.com/v1/playlists/3zi6HOncBZUIlB0bikQ9YD"
      5. id: "3zi6HOncBZUIlB0bikQ9YD"
      6. images: (3) [{…}, {…}, {…}]
      7. name: "Keep Calm"
      8. owner: {display_name: "undefined", external_urls: {…}, href: "https://api.spotify.com/v1/users/undefined", id: "undefined", type: "user", …}
      9. primary_color: null
      10. public: true
      11. snapshot_id: "NjMsODQ2NDljZThkZDIwNzM2OTJmMjA0M2EwMDNjOTAzNzQ2MTQxNmYwMw=="
      12. tracks: {href: "https://api.spotify.com/v1/playlists/3zi6HOncBZUIlB0bikQ9YD/tracks", total: 57}
      13. type: "playlist"
      14. uri: "spotify:playlist:3zi6HOncBZUIlB0bikQ9YD"
      15. __proto__: Object
    3. length: 2
    4. __proto__: Array(0)

So, I've got nothing agains nirvana or keeping Calm, but I can't keep calm while my app is not working correctly 😃

Please help me out. Thanks in advance!

 

 

PS the function is: 

 

async getUserPlaylists() {
const accessToken = this.getAccessToken();
const headers = {
Authorization: `Bearer ${accessToken}`,
};
const userID = await this.getCurrentUserId(); //GET current user’s ID
//Get a list of the playlists owned or followed by a Spotify user.

return fetch(`${spotifyLink}users/${userID}/playlists`, {
headers: headers,
})
.then((response) => {
return response.json();
})
.then((jsonResponse) => {
if (jsonResponse.items) {
console.log(jsonResponse.items);
return jsonResponse.items.map((playlist) => ({
id: playlist.id,
name: playlist.name,
}));
} else {
return [];
}
});
Reply

Accepted Solutions
Marked as solution

Welcome to the forum, @Siriakivska. Have you checked that the {user_id} is correct when your app calls https://api.spotify.com/v1/users/{user_id}/playlists?

View solution in original post

2 Replies
Marked as solution

Welcome to the forum, @Siriakivska. Have you checked that the {user_id} is correct when your app calls https://api.spotify.com/v1/users/{user_id}/playlists?

Hi, spotifyjosh,

Thanks a lot 

that may seem an easy one, and I was sure I checked it like 10 times before .

however when I double-checked again it turned out you were right !!

Suggested posts

Type a product name