rAthus icon

Facebook PHP SDK : _facebook_functions.php

rAthus | PRO | 10/01/15 02:21:11 PM UTC | 0 ⭐ | 624 👁️ | Never ⏰ | []
PHP |

3.84 KB

|

None

|

0 👍

/

0 👎

session_start();
 
date_default_timezone_set('Europe/Paris');
 
define('FACEBOOK_SDK_V4_SRC_DIR', '/fb-php-sdk-v4/src/Facebook/');
require __DIR__ . '/facebook-php-sdk-v4/autoload.php';
 
require_once( __DIR__ . '/facebook-php-sdk-v4/src/Facebook/FacebookSession.php' );
require_once( __DIR__ . '/facebook-php-sdk-v4/src/Facebook/FacebookRedirectLoginHelper.php' );
require_once( __DIR__ . '/facebook-php-sdk-v4/src/Facebook/FacebookRequest.php' );
require_once( __DIR__ . '/facebook-php-sdk-v4/src/Facebook/FacebookResponse.php' );
require_once( __DIR__ . '/facebook-php-sdk-v4/src/Facebook/FacebookSDKException.php' );
require_once( __DIR__ . '/facebook-php-sdk-v4/src/Facebook/FacebookRequestException.php' );
require_once( __DIR__ . '/facebook-php-sdk-v4/src/Facebook/FacebookAuthorizationException.php' );
require_once( __DIR__ . '/facebook-php-sdk-v4/src/Facebook/GraphObject.php' );
require_once( __DIR__ . '/facebook-php-sdk-v4/src/Facebook/Entities/AccessToken.php' );
require_once( __DIR__ . '/facebook-php-sdk-v4/src/Facebook/HttpClients/FacebookHttpable.php' );
require_once( __DIR__ . '/facebook-php-sdk-v4/src/Facebook/HttpClients/FacebookCurlHttpClient.php' );
require_once( __DIR__ . '/facebook-php-sdk-v4/src/Facebook/HttpClients/FacebookCurl.php' ); 
 
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\Entities\AccessToken;
use Facebook\HttpClients\FacebookHttpable;
use Facebook\HttpClients\FacebookCurlHttpClient;
use Facebook\HttpClients\FacebookCurl;
 
FacebookSession::setDefaultApplication('XXXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); // app_id et app_secret de l'application Facebook
 
// facebook_publish()
// $page_id = id de la page facebook au nom de laquelle on veut publier
// $access_token = access token valide pour la page
// $publish_timestamp = timestamp de l'heure programmée de publication, entre 10 minutes et 6 mois (facultatif)
// $message = message posté (facultatif si on partage un lien)
// $link = lien partagé (facultatif si on a mis un message)
// $link_name = titre du lien (possible si lien partagé)
// $link_description = description du lien (possible si lien partagé)
function facebook_publish($page_id,$access_token,$publish_timestamp=false,$message='',$link='',$link_name='',$link_description='')
{
    if (!$page_id or !$access_token or (!$message and !$link))
        return array('error'=>'You must provide at lease a page_id, an access_token and a message or a link.');
    $session = new FacebookSession($access_token);
    $request = new FacebookRequest
    (
        $session,
        'POST',
        '/'.$page_id.'/feed',
        array
        (
            'published' => ($publish_timestamp)?false:true,
            'scheduled_publish_time' => ($publish_timestamp)?$publish_timestamp:false,
            'message' => $message,
            'link' => $link,
            'name' => $link_name,
            'description' => $link_description
        )
    );
    try
    {
        $response = $request->execute();
        $graphObject = $response->getRawResponse();
        return $graphObject; // si la requête ok, retourne {"id":"XXXXXXXXXXX_XXXXXXXXXXXXXXXXX"}
    }
    catch(Exception $e)
    {
        return $e;
    }
}
 
// facebook_delete()
// $post_id = id du post facebook à supprimer sous la forme XXXXXXXXXXX_XXXXXXXXXXXXXXXXX
// $access_token = assess token valide pour la page
function facebook_delete($post_id,$access_token)
{
    $session = new FacebookSession($access_token);
    $request = new FacebookRequest
    (
        $session,
        'DELETE',
        '/'.$post_id
    );
    try
    {
        $response = $request->execute();
        $graphObject = $response->getRawResponse();
        return $graphObject; // si la requête ok, retourne {"success":true}
    }
    catch(Exception $e)
    {
        return $e;
    }
}

Comments