Skip to content

oivoodoo/exfacebook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

exfacebok

Inspired by koala gem in Ruby

Documentation

Installation

If available in Hex, the package can be installed as:

  1. Add exfacebook to your list of dependencies in mix.exs:

    def deps do [{:exfacebook, "~> 0.0.9"}] end

  2. Ensure exfacebook is started before your application:

    def application do [applications: [:exfacebook]] end

Examples

  {:ok, pid} = Exfacebook.start_link

  {:ok, attributes} = Exfacebook.get_object(pid, :me, %{access_token: "access-token"})
  {:ok, %{"data" => collection}} = response = Exfacebook.get_connections(pid, :feed, %{fields: "id, name", access_token: "access-token"})
  response = Exfacebook.get_connections(pid, :feed, %{fields: "id, name", access_token: "access-token"})
  {:ok, %{"data" => collection1}} = response2 = Exfacebook.next_page(pid, response)
  {:ok, %{"data" => collection2}} = Exfacebook.prev_page(pid, response2)

Example of batch requests:

  [{:ok, %{"data" => collection}}, {:ok, %{"id" => id, "name" => name}}] = Exfacebook.batch(%{access_token: "access-token"}, fn(api) ->
    api = api |> Exfacebook.get_object(pid, :me, %{fields: "id, name"})
    api = api |> Exfacebook.get_connections(pid, :feed, %{fields: "id, name"})
    api
  end)

Example of posting message to feed:

  Exfacebook.put_connections(:me, :feed, %{access_token: "access-token"}, %{message: "hello"})

Using Exfacebook.Api outside of GenServer. Exfacebook module is working as proxy for accessing Api module by specifying GET requests as call and PUT as cast actions.

  {:ok, attributes} = Exfacebook.Api.get_object(:me, %{access_token: "access-token"})

Examples

  iex -S mix
  Code.require_file("example.exs", "examples/")

It should produce logging messages about the objects and attributes from feed and me requests.

TODO:

  • add test for get_connections
  • add test for next_page
  • add test for prev_page
  • batch api for get_object and get_connections
  • batch api for put_*
  • put_*
  • wrap api by GenServer for put operations as cast and get as call
  • realtime updates subscribe, list_subscriptions, unsubscribe, meet_challenge
  • add delete_* methods
  • add put video and image
  • add get exchange token