mute/facebook

Implements Graph API and some of the OAuth facilities to operate with Facebook

v1.0.4 2015-04-02 15:14 UTC

README

Implements Graph API and some of the OAuth facilities to operate with Facebook. See examples for usage.

This library package requires PHP 5.3 or later.

How to use this library

Simple requests:

<?php

$app = new \Mute\Facebook\App(APP_ID, APP_SECRET, APP_NAMESPACE);

// get name of a user
$response = $app->get(USER_ID, array('fields' => 'name'));
echo "user's name is " . $response['name'];

// or the full response
$response = $app->get(USER_ID, array('fields' => 'name'), null, true);
echo "user's name is " . $response['body']['name'];

// post a photo
$response = $app->post(USER_ID . '/photo', null, array(
    'source' => PHOTO_FILENAME
));

// get the fresh list friends
$response = $app->get(USER_ID . '/friends', null, null, array(
    'If-None-Match: ' . PREVIOUS_ETAG,
));

By default, app access token will be automatically append. If you need to request with a custom access_token:

<?php
$data = $app->get('me', array(
    'access_token' => MY_ACCESS_TOKEN,
));
// or
$customApp = $app->getAuthenticatedGraphApi(MY_ACCESS_TOKEN);
$data = $customApp->get('me');

Batched requests:

<?php
// only bodies
$responses = $customApp->batch()
    ->get('me')
    ->get('me/friends', array('limit' => 50))
    ->execute();
// or
$responses = $customApp->batch(function($app) {
    $app->get('me');
    $app->get('me/friends', array('limit' => 50));
});

// for full responses, you can do
$responses = $customApp->getAuthenticatedGraphApi(MY_ACCESS_TOKEN)->batch()
    ->get('me')
    ->get('me/friends', array('limit' => 50))
    ->execute(true);
// or
$responses = $customApp->batch(function($customApp) {
    $customApp->get('me');
    $customApp->get('me/friends', array('limit' => 50));
}, true);

Sometimes you need more control of the http request. for this you can manipulate the options:

<?php
// fetching a paginated list of friends can very long, set up the timeout to 30 seconds
$app->setOptions('timeout', 60);
$friends = $app->get(USER_ID . '/friends', array(
    'offset' => 5000,
    'limit' => 5000,
));
// once finished, you can reset the options
$app->resetOptions();

Api will hit default graph api version. You may change version:

<?php
$app = $app->changeVersion('v2.0');

More

For generating the API doc, install apigen, and then run:

$ apigen -c apigen.neon

For running unittests, install PHPUnit, and then run:

$ phpunit -c tests/phpunit.xml