class FacebookChat::XFacebookPlatform
Public Class Methods
new(stream)
click to toggle source
Calls superclass method
# File lib/facebook_chat/x_facebook_platform.rb, line 5 def initialize(stream) super challenge = {} error = nil stream.send(generate_auth('X-FACEBOOK-PLATFORM')) do |reply| if reply.name == 'challenge' and reply.namespace == Jabber::SASL::NS_SASL challenge = CGI.parse(Base64::decode64(reply.text)) else error = reply.first_element(nil).name end true end raise error if error @method = challenge['method'][0] @nonce = challenge['nonce'][0] end
Public Instance Methods
auth(access_token)
click to toggle source
# File lib/facebook_chat/x_facebook_platform.rb, line 24 def auth(access_token) response = { :method => @method, :nonce => @nonce, :access_token => access_token, :api_key => FacebookChat::Client.configuration.api_key, :call_id => Time.now.to_i, :v => '1.0' } response_text = response.collect {|k, v| "#{k}=#{v}" }.join('&') response = REXML::Element.new('response') response.add_namespace Jabber::SASL::NS_SASL response.text = Base64::encode64(response_text) error = nil @stream.send(response) do |reply| if reply.name != 'success' error = reply.first_element(nil).name end true end raise error if error end