Use the given username for saying message

Yes

The bot uses the a token that represents the bot, that has chat read/write

And to read from pubsub, you use a token that represents you, and has the subscribe scopes (or whatever you need for whichever topics)