class FBScrape::Conversation

Attributes

id[RW]
messages[RW]
page_id[RW]
updated_at[RW]

Public Class Methods

new(id, page_id, token, load_on_init=true) click to toggle source
# File lib/fb_scrape/conversation.rb, line 5
def initialize id, page_id, token, load_on_init=true
  @id = id
  @page_id = page_id
  @token = token
  @page_info = nil
  @messages = []

  if load_on_init
    load_messages
  end
end

Public Instance Methods

has_more_messages?() click to toggle source
# File lib/fb_scrape/conversation.rb, line 21
def has_more_messages?
  @page_info && next_cursor
end
load_messages() click to toggle source
# File lib/fb_scrape/conversation.rb, line 17
def load_messages
  load_initial_messages
end

Private Instance Methods

load_from_url(url) click to toggle source
# File lib/fb_scrape/conversation.rb, line 41
def load_from_url url
  resp = HTTParty.get(url)
  case resp.code
    when 200
      response = JSON.parse(resp.body)
      @messages = @messages.concat(response['messages']['data'].collect { |m| FBScrape::Message.new(m, @id, @page_id) })
      @page_info = response['messages']['paging']
    when 400
  end
end
load_initial_messages() click to toggle source
# File lib/fb_scrape/conversation.rb, line 31
def load_initial_messages
  url = "https://graph.facebook.com/v#{FBScrape::GRAPH_VERSION}/#{@id}?access_token=#{@token}&fields=messages{message,to,from,created_time}"
  load_from_url url
end
load_more_messages() click to toggle source
# File lib/fb_scrape/conversation.rb, line 36
def load_more_messages
  url = "https://graph.facebook.com/v#{FBScrape::GRAPH_VERSION}/#{@id}?access_token=#{@token}&fields=messages{message,to,from,created_time}&limit=25&after=#{next_cursor}"
  load_from_url url
end
next_cursor() click to toggle source
# File lib/fb_scrape/conversation.rb, line 27
def next_cursor
  @page_info["cursors"]["after"]
end