trabajo-afectivo/app/models/channel/facebook.rb

57 lines
1 KiB
Ruby
Raw Normal View History

# Copyright (C) 2012-2015 Zammad Foundation, http://zammad-foundation.org/
require 'facebook'
2012-04-10 14:06:46 +00:00
class Channel::Facebook
def fetch (channel)
@channel = channel
@facebook = Facebook.new( @channel[:options][:auth] )
@sync = @channel[:options][:sync]
Rails.logger.debug 'facebook fetch started'
fetch_feed
disconnect
Rails.logger.debug 'facebook fetch completed'
2012-04-10 14:06:46 +00:00
end
2014-06-22 07:00:09 +00:00
def send(article, _notification = false)
@channel = Channel.find_by( area: 'Facebook::Inbound', active: true )
@facebook = Facebook.new( @channel[:options][:auth] )
tweet = @facebook.from_article(article)
disconnect
tweet
end
2014-06-22 07:00:09 +00:00
def disconnect
@facebook.disconnect
2014-06-22 07:00:09 +00:00
end
private
def fetch_feed
return if !@sync[:group_id]
counter = 0
feed = @facebook.client.get_connections('me', 'feed')
feed.each { |f|
break if @sync[:limit] && @sync[:limit] <= counter
post = @facebook.client.get_object( f['id'] )
@facebook.to_group( post, @sync[:group_id] )
counter += 1
}
2012-04-10 14:06:46 +00:00
end
end