I know I can buy them, but is there any other way? I saw this article which states you can earn it by watching Twitch streams, but it didn't say which streams or when they are.
- Buy them - you already know it, but for the sake of completeness - Shop Page
- Watch Overwatch League on Twitch. Also, some conditions need to be met (from this support article):
- Make sure you've set up and linked your accounts correctly.
- Disable any ad blockers while watching.
- Google Chrome has a power saving feature which will pause a broadcast if you mute the tab and navigate to a different tab—this will prevent you from earning tokens.
- If watching on Twitch, make sure your Twitch profile in the upper-right corner says you're watching Overwatch League.
- Your Blizzard account must be associated with one of the participating countries
- Signing up to receive updates via email from Overwatch League website grants 100 one time. (source)