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).

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"

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.0.1"}]
    end
  2. Ensure unsplash is started before your application:

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

Todo

  • Complete test coverage
  • Handle errors