I've looked up how exactly onedrive is getting embed url when you use "Embed" on website. Turned out it uses other function than createLink - it uses /thumbnails.
And you can also use this function as it is a part of Rest API - as result you'll get links in format https://yfzapq.am.files.1drv.com/abcdefg123456?width=768&height=1024&cropmode=nonethat that seems to last forever. If you remove all the parameters from url (?width=768&height=1024&cropmode=none) it will lead to the original image.
PS The problem with this method - thumbnail urls are dying within 4 hours (from my experience).