Inspired by koala gem in Ruby
If available in Hex, the package can be installed as:
-
Add exfacebook to your list of dependencies in
mix.exs
:def deps do [{:exfacebook, "~> 0.0.9"}] end
-
Ensure exfacebook is started before your application:
def application do [applications: [:exfacebook]] end
{: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"})
iex -S mix
Code.require_file("example.exs", "examples/")
It should produce logging messages about the objects and attributes from feed and me requests.
- 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