Spanfile / Ferrispot

A wrapper for the Spotify Web API
Apache License 2.0
1 stars 1 forks source link

0.3.0 InvalidClient #2

Closed ShayBox closed 1 year ago

ShayBox commented 1 year ago

I updated to 0.3.0 and user_client.refresh_access_token() gives me an Unhandled authentication error: InvalidClient error (with and without pkce).
I tested 0.2.1 and it worked, 0.3.0 doesn't, normal construction and code/state are valid.

EDIT: I'm also not able to use ? on the result of refresh_access_token (and many more methods), errors never propagate and the program just freezes on error, but unwrap works.

I also wanted to ask if there's any control over playback implemented,
Such as play/pause/stop/next/prev/shuffle/mute/repeat/volume.

Spanfile commented 1 year ago

I've published 0.3.1 that contains a fix for the invalid client error.

Can you show an example of the errors freezing the program?

Play, pause, resume, volume, shuffle and repeat are implemented in scoped clients. I'll implement next, previous and seek as well.

Edit: Next, previous and seek have been implemented in 0.3.2.

ShayBox commented 1 year ago

0.3.1 fixed the InvalidClient error for me :+1:

I wasn't able to reproduce the error freezing in an example project, I think it's because I spawn a separate thread for each plugin in my project and using ? doesn't propagate outside the thread with abi_stable, only panics, sorry about that.

I'll be using all those methods very soon, thank you.

The last problem I'm having is that currently_playing_item doesn't return items from private playlists (such as liked)
https://developer.spotify.com/console/get-users-currently-playing-track
The demo returns them but Ferrispot doesn't, here's the result I get from that page
https://pastebin.com/1wSg2Q9B

Spanfile commented 1 year ago

The Liked Songs playlist turns out to be a special case that Ferrispot's model doesn't account for yet, but I'm working on updating it.

Spanfile commented 1 year ago

I've published 0.3.3 that should be able to deal with the special Liked Songs playlist.

ShayBox commented 1 year ago

Thank you, that fixed it for me :+1:

ShayBox commented 1 year ago

Actually I found another result that doesn't work, searching for music and playing it https://pastebin.com/rsFCpeu7 🥲 It looks the same to me but I guess it's not

EDIT: I'm also getting a 411 length error when trying to use any playback state methods such as pause
https://pastebin.com/U8kqUm0n

Spanfile commented 1 year ago

Ah yep, that's because the entire playing context is null. It's going to be a breaking change changing the context in the model to be an Option<Context> instead. I'll group the change with a bunch of other breaking changes as well and release them as 0.4.0 later.

Spanfile commented 1 year ago

I've released 0.4.0 that includes a fix for the missing context, but also overhauls the endpoint requests. Please see the changelog for more details.