diff --git a/docs/users/jaxl_instance.rst b/docs/users/jaxl_instance.rst index 501db1ed..e27883e2 100644 --- a/docs/users/jaxl_instance.rst +++ b/docs/users/jaxl_instance.rst @@ -17,7 +17,7 @@ Constructor options #. ``auth_type`` - DIGEST-MD5, PLAIN (default), CRAM-MD5, ANONYMOUS, X-FACEBOOK-PLATFORM + DIGEST-MD5, PLAIN (default), CRAM-MD5, ANONYMOUS #. ``host`` #. ``port`` @@ -27,14 +27,6 @@ Constructor options ``JAXL_ERROR``, ``JAXL_WARNING``, ``JAXL_NOTICE``, ``JAXL_INFO`` (default), ``JAXL_DEBUG`` - #. ``fb_access_token`` - - required when using X-FACEBOOK-PLATFORM auth mechanism - - #. ``fb_app_key`` - - required when using X-FACEBOOK-PLATFORM auth mechanism - #. ``force_tls`` #. ``stream_context`` #. ``priv_dir`` diff --git a/examples/xfacebook_platform_client.php b/examples/xfacebook_platform_client.php deleted file mode 100644 index 7e3bc9fc..00000000 --- a/examples/xfacebook_platform_client.php +++ /dev/null @@ -1,106 +0,0 @@ -. - * 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. - * - */ - -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.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 -// - -function on_auth_success_callback() -{ - global $client; - _info("got on_auth_success cb, jid ".$client->full_jid->to_string()); - $client->set_status("available!", "dnd", 10); -} -$client->add_cb('on_auth_success', 'on_auth_success_callback'); - -function on_auth_failure_callback($reason) -{ - global $client; - $client->send_end_stream(); - _info("got on_auth_failure cb with reason $reason"); -} -$client->add_cb('on_auth_failure', 'on_auth_failure_callback'); - -function on_chat_message_callback($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_chat_message', 'on_chat_message_callback'); - -function on_disconnect_callback() -{ - _info("got on_disconnect cb"); -} -$client->add_cb('on_disconnect', 'on_disconnect_callback'); - -// -// finally start configured xmpp stream -// -$client->start(); -echo "done\n"; diff --git a/jaxl.php b/jaxl.php index 57ab060f..7531ef36 100644 --- a/jaxl.php +++ b/jaxl.php @@ -579,56 +579,7 @@ protected function enable_debug_shell() // // abstract method implementation // - - protected function send_fb_challenge_response($challenge) - { - $this->send($this->get_fb_challenge_response_pkt($challenge)); - } - - // refer https://developers.facebook.com/docs/chat/#jabber - public function get_fb_challenge_response_pkt($challenge) - { - $stanza = new JAXLXml('response', NS_SASL); - - $challenge = base64_decode($challenge); - $challenge = urldecode($challenge); - parse_str($challenge, $challenge_arr); - - $response = http_build_query(array( - 'method' => $challenge_arr['method'], - 'nonce' => $challenge_arr['nonce'], - 'access_token' => $this->cfg['fb_access_token'], - 'api_key' => $this->cfg['fb_app_key'], - 'call_id' => 0, - 'v' => '1.0' - )); - - $stanza->t(base64_encode($response)); - return $stanza; - } - - public function wait_for_fb_sasl_response($event, $args) - { - switch ($event) { - case "stanza_cb": - $stanza = $args[0]; - - if ($stanza->name == 'challenge' && $stanza->ns == NS_SASL) { - $challenge = $stanza->text; - $this->send_fb_challenge_response($challenge); - return "wait_for_sasl_response"; - } else { - _debug("got unhandled sasl response, should never happen here"); - exit; - } - break; - default: - _debug("not catched $event, should never happen here"); - exit; - break; - } - } - + // someday this needs to go inside xmpp stream public function wait_for_cram_md5_response($event, $args) { @@ -733,20 +684,6 @@ public function handle_auth_mechs($stanza, $mechanisms) if ($pref_auth_exists) { $mech = $pref_auth; } else { - // if pref auth doesn't exists, choose one from available mechanisms - - foreach ($mechs as $mech => $any) { - // choose X-FACEBOOK-PLATFORM only if fb_access_token config value is available - if ($mech == 'X-FACEBOOK-PLATFORM') { - if (isset($this->cfg['fb_access_token'])) { - break; - } - } else { - // else try first of the available methods - - break; - } - } _error("preferred auth type not supported, trying $mech"); } @@ -755,10 +692,8 @@ public function handle_auth_mechs($stanza, $mechanisms) isset($this->jid) ? $this->jid->to_string() : null, $this->pass ); - - if ($pref_auth == 'X-FACEBOOK-PLATFORM') { - return "wait_for_fb_sasl_response"; - } elseif ($pref_auth == 'CRAM-MD5') { + + if ($pref_auth == 'CRAM-MD5') { return "wait_for_cram_md5_response"; } elseif ($pref_auth == 'SCRAM-SHA-1') { return "wait_for_scram_sha1_response";