2017 © Pedro Peláez
 

library opengraph

PHP library for consuming and publishing Open Graph resources.

image

fusonic/opengraph

PHP library for consuming and publishing Open Graph resources.

  • Wednesday, May 3, 2017
  • by mburtscher
  • Repository
  • 5 Watchers
  • 46 Stars
  • 12,034 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 23 Forks
  • 8 Open issues
  • 2 Versions
  • 8 % Grown

The README.md

fusonic/opengraph

Latest Stable Version Total Downloads Build Status License, (*1)

A simple library to read Open Graph data from the web and generate HTML code to publish your own Open Graph objects. A fallback mode enables you to read data from websites that do not implement the Open Graph protocol., (*2)

Using this library you can easily retrieve stuff like meta data, video information from YouTube or Vimeo or image information from Flickr without using site-specific APIs since they all implement the Open Graph protocol., (*3)

See ogp.me for information on the Open Graph protocol., (*4)

Requirements

Installation

The most flexible installation method is using Composer:, (*5)

``` bash composer require fusonic/opengraph, (*6)


Install composer and run install command: ``` bash curl -s http://getcomposer.org/installer | php php composer.phar install

Once installed, include vendor/autoload.php in your script., (*7)

``` php require "vendor/autoload.php";, (*8)


## Usage ### Retrieve Open Graph data from a URL ``` php use Fusonic\OpenGraph\Consumer; $consumer = new Consumer($httpClient, $httpRequestFactory); $object = $consumer->loadUrl("http://www.youtube.com/watch?v=P422jZg50X4"); // Basic information of the object echo "Title: " . $object->title; // Getting started with Facebook Open Graph echo "Site name: " . $object->siteName; // YouTube echo "Description: " . $object->description; // Originally recorded at the Facebook World ... echo "Canonical URL: " . $object->url; // http://www.youtube.com/watch?v=P422jZg50X4 // Images $image = $object->images[0]; echo "Image[0] URL: " . $image->url; // https://i1.ytimg.com/vi/P422jZg50X4/maxresdefault.jpg echo "Image[0] height: " . $image->height; // null (May return height in pixels on other pages) echo "Image[0] width: " . $image->width; // null (May return width in pixels on other pages) // Videos $video = $object->videos[0]; echo "Video URL: " . $video->url; // http://www.youtube.com/v/P422jZg50X4?version=3&autohide=1 echo "Video height: " . $video->height; // 1080 echo "Video width: " . $video->width; // 1920 echo "Video type: " . $video->type; // application/x-shockwave-flash

There are some more properties but these are the basic and most commonly used ones., (*9)

Publish own Open Graph data

``` php use Fusonic\OpenGraph\Elements\Image; use Fusonic\OpenGraph\Elements\Video; use Fusonic\OpenGraph\Publisher; use Fusonic\OpenGraph\Objects\Website;, (*10)

$publisher = new Publisher(); $object = new Website();, (*11)

// Basic information of the object $object->title = "Getting started with Facebook Open Graph"; $object->siteName = "YouTube"; $object->description = "Originally recorded at the Facebook World ..." $object->url = "http://www.youtube.com/watch?v=P422jZg50X4";, (*12)

// Images $image = new Image("https://i1.ytimg.com/vi/P422jZg50X4/maxresdefault.jpg"); $object->images[] = $image;, (*13)

// Videos $video = new Video("http://www.youtube.com/v/P422jZg50X4?version=3&autohide=1"); $video->height = 1080; $video->width = 1920; $video->type = "application/x-shockwave-flash"; $object->videos[] = $video;, (*14)

// Generate HTML code echo $publisher->generateHtml($object); // // // // // // // // // , (*15)


_HTML code is formatted just for displaying purposes. You may choose between HTML5/XHTML output using the ```$publisher->doctype``` property._ ## Running tests You can run the test suite by running `phpunit` from the command line. ## FAQ **I don't get any information from a webpage, but Facebook shows information for the same URL. What do I do wrong?** It seems that some pages (like Twitter) only publish OpenGraph information if Facebook's user agent string `facebookexternalhit/1.1` is used (see #28). So you should configure your PSR-18 client to use this user agent string: ```php $client = new Psr18Client(new NativeHttpClient([ "headers" => [ "User-Agent" => "facebookexternalhit/1.1" ] ]));

License

This library is licensed under the MIT license., (*16)

The Versions

03/05 2017

dev-master

9999999-dev https://github.com/fusonic/fusonic-opengraph

PHP library for consuming and publishing Open Graph resources.

  Sources   Download

MIT

The Requires

 

The Development Requires

opengraph

23/07 2014

1.0.0

1.0.0.0 https://github.com/fusonic/fusonic-opengraph

PHP library for consuming and publishing Open Graph resources.

  Sources   Download

MIT

The Requires

 

opengraph