Of course as a technician with knowledge of how OAuth and web APIs work, the implication that it really needs access to all messages seems a lot more reasonable - but I don't think this view is necessarily valid in a larger context.
Implementing more fine-grained permissions is absolutely possible. See e.g. Telegram: Even though Telegram bots appear as mostly ordinary users, they by default cannot access the messages of the channels they joined - they can only access commands that users were explicitly sending to them. You need a special permission to have a bot actually be able to access a channel like a human user would.
Or is your claim that you gave only permission for profile and friends but the Spotify client had messaging permission as well?
I disagree. I have perused various trials for Spotify and other services over the years and never once had to resort to using a Federated ID/login.
Which they have been shown to about a dozen times over this month.
What’s more, users explicitly opted in, giving Spotify permission to do so. [1] No reasonable person would use Spotify to send and receive messages after explicitly granting the client permissions and then claim “but I don’t expect Spotify to have access to my private messages”
[1] - https://stackoverflow.com/questions/17561784/django-social-a...