facebook v0.13.2 Facebook.Stream

Provides stream functionalities for the Facebook Graph API paginated responses

See: https://developers.facebook.com/docs/graph-api/using-graph-api/#reading

Summary

Functions

Build a stream resource from a facebook paginated response with a custom define error handler and a maximum of retries

Types

error :: any
retry :: pos_integer

Functions

new(paged_response, error_handler \\ fn _error, _retry -> Process.sleep(1000) end, max_retries \\ 3)

Specs

new(Map.t, (error, retry -> any), pos_integer) :: Enumerable.t

Build a stream resource from a facebook paginated response with a custom define error handler and a maximum of retries

The user defined error handler can be used to log errors, delay next retry, raise an exception, etc. The default error handler sleeps 1 second between retries.

Examples

iex> stream = Facebook.pageFeed(:feed, “CocaColaMx”, ““, “id,name”) |> Facebook.Stream.new iex> stream |> Stream.filter(fn(name) -> name == “Coca Cola” end) |> Stream.take(100) |> Enum.to_list

Custom error handler with linear backoff

iex> feed = Facebook.pageFeed(:feed, “CocaColaMx”, ““, 25, “id,name”) iex> stream = Facebook.Stream.new(feed, fn(error, retry) -> Process.sleep(retry*500) end) iex> stream |> Stream.filter(fn(name) -> name == “Coca Cola” end) |> Stream.take(100) |> Enum.to_list