Unsplash Build Status Hex pm

Unsplash API wrapper in Elixir.

Exmaple Usage

  • Unsplash.photos(:search, query: "Austin", catgeroy: "2") |> Enum.take(1)
  • Unsplash.categories |> Enum.take(1)
  • And more. All API endpoints are supported. See documentation for full list.

Each API call that is paginated returns a stream. You can resolve the stream by calling any Enum function, this way you don’t have to think about pagination. For example to get one random photo: Unsplash.photos(:random) |> Enum.take(1) or to get 100 random photos Unsplash.photos(:random) |> Enum.take(100).

Configuration

See the secrets.exs file on what configuration variables need to be configured.

Authorization

Get Auth code by directing user to the url generated by this command (replace the scope with what you would like): Unsplash.OAuth.authorize_url! scope: "public read_user write_user read_photos write_photos write_likes read_collections write_collections"

After the user grants access, she will be redirected back to your redirect_uri whith a code query paramater, which you then set like this: Unsplash.OAuth.authorize!(code: auth_code_from_the_callback)

Now every API call will use the access_code gerenated in the above step automatically.

Installation

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

    def deps do [{:unsplash, “~> 0.4.0”}] end

  2. Ensure unsplash is started before your application:

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