But if the scraper is using Puppeteer, either approach will result in the redirect being followed and the Open Graph data being ignored.
For example, Microlink follows the JS redirect and seems to ignore your Open Graph data: https://microlink.io/meta?url=https%3A%2F%2Fnews.ycombinator... Scraped data at this time: https://i.imgur.com/pRLIt0S.png
This is normally the behavior you want from a scraper: if someone pastes a bit.ly / t.co link you want the link preview to show data on the other side of the redirect.
You could try to figure out how to distinguish between a scraper and a human operator, but that'll be tough, since people work very hard to make Puppeteer look 100% legit.
I feel like any reputable agent calling for open graph stuff is going to be labeled correctly, though I'm open to being wrong.