Get Open Graph Data with Node.js

By  on  

Two of this blog's most popular posts are Facebook Open Graph META Tags and How to Create a Twitter Card.  I'm not at all surprised because we as content creators want some visual control over how our site is represented and shared on third party sites, especially social media sites.   I was recently posting a link on Tech.pro and they instantly grab open graph information about the page, prepopulating known information, just like Facebook and Twitter, and that got me thinking about the other side of open graph data -- scraping data from a site.  Look no further than the open-graph-scraper JavaScript module!

After installing the module from NPM or GitHub, getting Open Graph information from a given URL is easy:

var ogs = require('open-graph-scraper');

ogs(
	{ url: 'https://davidwalsh.name' }, // Settings object first
	function(er, res) { console.log(er, res); }  // Callback 
);

/*  Result:
	
	{ data:
	   { success: 'true',
	     ogImage: 'https://davidwalsh.name/wp-content/themes/punky/images/logo.png',
	     ogTitle: 'David Walsh - JavaScript, HTML5 Consultant',
	     ogUrl: 'https://davidwalsh.name/',
	     ogSiteName: 'David Walsh Blog',
	     ogDescription: 'David Walsh Blog features tutorials about MooTools, jQuery, Dojo, JavaScript, PHP, CSS, HTML5, MySQL, and more!' },
	  success: true }
	
*/

Simple API and simple result -- lovely.  Of course every programming language will have an equivalent library but we all know JavaScript is king!  Happy sharing everyone!

Recent Features

  • By
    Create a CSS Cube

    CSS cubes really showcase what CSS has become over the years, evolving from simple color and dimension directives to a language capable of creating deep, creative visuals.  Add animation and you've got something really neat.  Unfortunately each CSS cube tutorial I've read is a bit...

  • By
    Conquering Impostor Syndrome

    Two years ago I documented my struggles with Imposter Syndrome and the response was immense.  I received messages of support and commiseration from new web developers, veteran engineers, and even persons of all experience levels in other professions.  I've even caught myself reading the post...

Incredible Demos

  • By
    Using MooTools to Instruct Google Analytics to Track Outbound Links

    Google Analytics provides a wealth of information about who's coming to your website. One of the most important statistics the service provides is the referrer statistic -- you've gotta know who's sending people to your website, right? What about where you send others though?

  • By
    HTML5’s window.postMessage API

    One of the little known HTML5 APIs is the window.postMessage API.  window.postMessage allows for sending data messages between two windows/frames across domains.  Essentially window.postMessage acts as cross-domain AJAX without the server shims. Let's take a look at how window.postMessage works and how you...

Discussion

  1. Muneeb

    Hi, David Thank you for this post. When using this code to fetch from multiple links . It is giving unhandled promise rejection.

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!