exfacebook v0.0.5 Exfacebook
Exfacebook implements Graph Api:
Exfacebook.Api
- graph calls using access token to Facebook Graph API, depends on respnse it returns decoded to JSON values.Exfacebook.Config
- specifyapi_version
and http requests for hackney.
Configuration example(optional variables):
config :exfacebook,
api_version: "v2.6",
http_options: [recv_timeout: :infinity],
id: "your_app_id_optional",
secret: "your_app_secret_optiona"
How to use API?
Examples:
start_link
- if you want to have worker you can start Exfacebook GenServer and usepid
as entry param for API methods:
{:ok, pid} = Exfacebook.start_link
get_object
- get user or page related attributes, in case if you decide to use specific params for Facebook API likefields
{:ok, %{"id" => id, "picture" => picture}} = Exfacebook.get_object(
pid, :me, %{access_token: "access-token", fields: "id, picture"})
get_connections
- get collection related items and attributes(feed or home or friends):
{:ok, %{"data" => collection}} = response = Exfacebook.get_connections(
pid, :feed, %{fields: "id, name", access_token: "access-token"})
next_page
/prev_page
- take next or prev collections using response fromget_connections
:
response = Exfacebook.get_connections(pid, :feed,
%{fields: "id, name", access_token: "access-token"})
response2 = Exfacebook.next_page(pid, response)
response3 = Exfacebook.next_page(pid, response2)
response4 = Exfacebook.prev_page(pid, response3)
put_connections
- update actions in facebook, example creates the new message in feed:
Exfacebook.put_connections(:me, :feed,
%{access_token: "access-token"}, %{message: "hello"})
Summary
Functions
Passing prepared params for batch processing using Facebook API
Realtime updates using subscriptions API
Functions
Passing prepared params for batch processing using Facebook API.
Params are coming like normal requests encoded to JSON and then Facebook emulate requests on their side:
Realtime updates using subscriptions API
Examples:
list_subscriptions
- returns list of subscriptions
params = %{fields: "id,name"}
{:ok, %{
"data" => [
%{"active" => true,
"callback_url" => "https://example.com/client/subscriptions",
"fields" => ["feed", "friends", "music"],
"object" => "user"}]
}
} = Api.list_subscriptions(params)
subscribe
- subscribe to real time updates forobject
,fields
should contains object to watch for updates(“feed, friends”).
Exfacebook.subscribe(pid, "id-1",
"friends, feed", "http://www.example.com/facebook/updates",
"token-123")
unsubscribe
- unsubscribeobject
from real time updates.
Exfacebook.unsubscribe(pid, "id-1")