Sha256: 5d6f5ccdfd310a14469b2d65317a844f937e1a61b38933a01a87eca842f3b2d1
Contents?: true
Size: 1.84 KB
Versions: 1
Compression:
Stored size: 1.84 KB
Contents
module Invity module Facebook class Message attr_accessor :sender, :reciever, :recievers, :subject, :body, :access_token def initialize(options = {}) [:sender, :recievers, :subject, :body, :access_token].each { |w| send("#{w}=", options[w]) } end def perform # SPECIAL METHOD USED BY DELAYED-JOBS chat end def deliver(opt = nil) case opt when :all then deliver_all when :all_delayed then deliver_all_as_delayed when :delayed then deliver_as_delayed else; deliver_each end end def deliver_all friends.each { |f| self.reciever = f; chat } end def deliver_all_as_delayed friends.each { |f| self.reciever = f Delayed::Job.enqueue self } end def deliver_as_delayed recievers.each { |f| self.reciever = f Delayed::Job.enqueue self } end def deliver_each recievers.each { |f| self.reciever = f; chat } end private #-------------------------------------------- def friends @friends ||= Invity::Facebook::API.new( access_token ).friend_ids end def chat id = "-#{sender}@chat.facebook.com" to = "-#{reciever}@chat.facebook.com" message = Jabber::Message.new to, body message.subject = subject client = Jabber::Client.new Jabber::JID.new(id) client.connect client.auth_sasl( authenticate(client), nil) client.send message client.close end def authenticate(client) Jabber::SASL::XFacebookPlatform.new(client, ENV.fetch('FACEBOOK_APP_ID'), access_token, ENV.fetch('FACEBOOK_APP_SECRET') ) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
invity-0.0.1 | lib/invity/message.rb |