* - Added scope, 'playlist-read-private', to examples that access user playlists using the spotipy api: current_user_playlists() (fixes#591)
* Fix example to use user_playlists again
Co-authored-by: Stephane Bruckert <stephane.bruckert@gmail.com>
* Fixplamere/spotipy#560
* Adhere to code style
* Update CHANGELOG.md for changes in 939f869bbc
* open_browser passed to get_auth_response should take precedence over the same argument in the constructor
* Update FAQ
* Add information about headless auth
* Add headless auth example
* No username needed + can be used by multiple users
* cleanup
* Remove caches when signing out
* Persist token only once
* Always show auth page
* Add one scope..
* Add a second scope and also a view which utilizes a scope.
* Add a __main__ clause example.
* Include further documentation.
* Move utility function higher in document.
* Add threading to application run call in __main__.
* Add (or reinstate–I thought it had been there) the "me" view.
* Add notes about SPOTIPY_REDIRECT_URI and using alternate port.
And specify that it should be the address that the App runs over.
* Whitespace only.
* Here is an example of importing credentials.
* Delete session_cache file on logout so new user can Authorize.
* Not going to use at this point.
* Update the "me" route method to use new approach to auth.
* Update app.py
Co-authored-by: Stephane Bruckert <contact@stephanebruckert.com>
Co-authored-by: Stephane Bruckert <stephane.bruckert@gmail.com>
* Update playlist endpoints to modern format
Deprecate user_playlist_* in favor of the following replacements:
* user_playlist_change_details -> playlist_change_details
* user_playlist_unfollow -> current_user_unfollow_playlist
* user_playlist_add_tracks -> playlist_add_tracks
* user_playlist_replace_tracks -> playlist_replace_tracks
* user_playlist_reorder_tracks -> playlist_reorder_tracks
* user_playlist_remove_all_occurrences_of_tracks -> playlist_remove_all_occurrences_of_tracks
* user_playlist_remove_specific_occurrences_of_tracks -> playlist_remove_specific_occurrences_of_tracks
* user_playlist_follow_playlist -> current_user_follow_playlist
* user_playlist_is_following -> playlist_is_following
* Add current_user_following_artists and current_user_following_users
* Update tests and examples
Resolve TODO in test_user_endpoints.py > SpotifyFollowApiTests.test_user_follows_and_unfollows_user
Use modern playlist endpoints (no username required) in tests and examples.
* Update changelog
* Deprecate playlist_tracks in favor of playlist_items
* Link deprecated functions to new functions and change tracks to items
* Fix references to playlist_tracks
* Change test_playlist_add_items as requested
* Create playlist_all_tracks.py
* Update playlist_all_tracks.py
forgot first items from playlist
* print result instead of returning it
* rename to playlist_all_non_local_tracks
* Update playlist_all_non_local_tracks.py
removed "== True" as it's implied
give an example playlist (global top 50)
more comments
corrected typo
* print only length and excluding instead of entire result
* Auto-refresh AuthCode flow token.
* Reformatted.
* Reformatted.
* Removed invalid syntax.
* Removed abstract class SpotifyAuthManager.
* Fix typo on docstrings.
* Optionally try to fetch main input parameters from environment.
Implements the capability of trying to fetch the following parameters from the environment, when they're not directly passed to the authorization handler.
The affected parameters are: client_id, client_secret, redirect_uri.
An SpotifyOauthError is raised if no value gets found.
* Removed f-string for Python2 compatibility.
* Fix line-too-long.
* Remove useless import.
* Add username to docstring.
* Remove redundant return.
* Fix empty lines print statement for backward compatibility with Python2.
* Update simple4 example.
* Set optional 'as_dict' parameter on OAuth 'get_access_token'.
* Update changelog.
Co-authored-by: Stéphane Bruckert <stephane.bruckert@gmail.com>
* auto-refresh user token
* example for a long-running user-request app
* wrap long lines
* combine duplicate code into _refresh_token_if_expired method
* add changelog entry