<?phpsession_start();/*** Jaxl (Jabber XMPP Library)** Copyright (c) 2009-2012, Abhinav Singh <m...@abhinavsingh.com>.* All rights reserved.** Redistribution and use in source and binary forms, with or without* modification, are permitted provided that the following conditions* are met:** * Redistributions of source code must retain the above copyright* notice, this list of conditions and the following disclaimer.** * Redistributions in binary form must reproduce the above copyright* notice, this list of conditions and the following disclaimer in* the documentation and/or other materials provided with the* distribution.** * Neither the name of Abhinav Singh nor the names of his* contributors may be used to endorse or promote products derived* from this software without specific prior written permission.** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE* POSSIBILITY OF SUCH DAMAGE.**/require 'php-sdk/facebook.php';//Get uidfunction get_uid($facebook,$scope,$app_url){$scope = 'xmpp_login,manage_pages';$user = $facebook->getUser();if (!$user) {$loginUrl = $facebook->getLoginUrl(array('scope' => $scope,'redirect_uri' => $app_url,));print('<script> top.location.href=\'' . $loginUrl . '\'</script>');}return($user);}//Get accountsfunction get_acc($facebook,$scope,$app_url){$permissions = $facebook->api('/me/permissions');if( array_key_exists($scope, $permissions['data'][0]) ) {// Permission is granted!// Do the related task$acc = $facebook->api('/me/accounts');} else {// We don't have the permission// Alert the user or ask for the permission!$loginUrl = $facebook->getLoginUrl(array("scope" => $scope,'redirect_uri' => $app_url));print('<script> top.location.href=\'' . $loginUrl . '\'</script>');}return($acc);}$app_id='APP_ID';$app_secret='APP_SECRET';$facebook = new Facebook(array('appId' => $app_id,'secret' => $app_secret,));$app_url = "MY_FACEBOOK_APP_URL";$scope = 'manage_pages,xmpp_login';$uid = get_uid($facebook,$scope,$app_url); //facebook uid$accounts = get_acc($facebook,$scope,$app_url); //facebook accounts$pid = $accounts['data'][0]['id']; //page id$access_token = $accounts['data'][0]['access_token'];; //group access_token$argv = array($name,$pid,$app_id,$access_token);$argc = count($argv);if($argc != 4) {echo "Usage: $argv[0] fb_user_id_or_username fb_app_key fb_access_token\n";exit;}//// initialize JAXL object with initial config//require_once 'JAXL/jaxl.php';$client = new JAXL(array(// (required) credentials'jid' => $argv[1].'@chat.facebook.com','fb_app_key' => $argv[2],'fb_access_token' => $argv[3],// force tls (facebook require this now)'force_tls' => true,// (required) force facebook oauth'auth_type' => 'X-FACEBOOK-PLATFORM',// (optional)//'resource' => 'resource','log_level' => JAXL_INFO));//// add necessary event callbacks here//$client->add_cb('on_auth_success', function() {global $client;_info("got on_auth_success cb, jid ".$client->full_jid->to_string());$client->set_status("available!", "dnd", 10);//$msg = new XMPPMsg(array('to'=>'-U...@chat.facebook.com'), 'MESSAGE');//$client->send($msg);});$client->add_cb('on_auth_failure', function($reason) {global $client;$client->send_end_stream();_info("got on_auth_failure cb with reason $reason");});$client->add_cb('on_chat_message', function($stanza) {global $client;// echo back incoming message stanza$stanza->to = $stanza->from;$stanza->from = $client->full_jid->to_string();$client->send($stanza);});$client->add_cb('on_disconnect', function() {_info("got on_disconnect cb");});//// finally start configured xmpp stream//$client->start();echo "done\n";?>