Unsplash API client in Elixir
Elixir
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
config
fixture
lib
test
.credo.exs
.formatter.exs
.gitignore
.travis.yml
README.md
mix.exs
mix.lock

README.md

Unsplash Build Status Hex pm Codacy Badge

Unsplash API wrapper in Elixir.

Exmaple Usage

  • Unsplash.Photos.search(query: "Austin", catgeroy: "2") |> Enum.take(1)
  • Unsplash.Collections.all |> Enum.take(1)
  • All API endpoints are supported. See the 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 an auth code by directing a 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, "~> 1.0.0"}]
    end
  1. Ensure unsplash is started before your application:
    def application do
      [applications: [:unsplash]]
    end