#pragma once #include // for function #include // for shared_ptr #include // for string namespace cspot { struct Context; class AccessKeyFetcher { public: AccessKeyFetcher(std::shared_ptr ctx); ~AccessKeyFetcher(); typedef std::function Callback; void getAccessKey(Callback callback); private: const std::string CLIENT_ID = "65b708073fc0480ea92a077233ca87bd"; // Spotify web client's client id const std::string SCOPES = "streaming,user-library-read,user-library-modify,user-top-read,user-read-" "recently-played"; // Required access scopes std::shared_ptr ctx; bool isExpired(); std::string accessKey; long long int expiresAt; }; } // namespace cspot