Hello Mark,
You can use HeadHTML web part on the news article or event page template and placing there meta tags with context macros retriving data from fields of document type.
Example content of web part:
<meta property="og:title" content="{%NewsTitle%}" />
<meta property="og:type" content="article" />
<meta property="og:site_name" content="{%SiteContext.SiteDisplayName}" />
<meta property="og:image" content="{%GetAbsoluteUrl("/getattachment/"+NewsTeaser+"/.aspx")|(identity)GlobalAdministrator%}" />