Hunter.Application (hunter v0.6.0)

Copy Markdown View Source

Application entity

This module defines a Hunter.Application struct and the main functions for working with Applications.

Fields

  • id - identifier
  • client_id - client id
  • client_secret - client secret
  • scopes - scopes requested when the app was registered
  • redirect_uri - redirect URI the app was registered with

Summary

Types

t()

@type t() :: %Hunter.Application{
  client_id: String.t(),
  client_secret: String.t(),
  id: non_neg_integer(),
  redirect_uri: String.t() | nil,
  scopes: [String.t()] | nil
}

Functions

create_app(client_name, redirect_uris \\ "urn:ietf:wg:oauth:2.0:oob", scopes \\ ["read"], website \\ nil, options \\ [])

@spec create_app(String.t(), String.t(), [String.t()], nil | String.t(), Keyword.t()) ::
  t()

Register a new OAuth client app on the target instance

Parameters

  • client_name - name of your application
  • redirect_uris - where the user should be redirected after authorization, default: urn:ietf:wg:oauth:2.0:oob (no redirect)
  • scopes - scope list, see the scope section for more details, default: read
  • website - URL to the homepage of your app, default: nil
  • options - option list

Scopes

  • read - read data
  • write - post statuses and upload media for statuses
  • follow - follow, unfollow, block, unblock

Multiple scopes can be requested during the authorization phase with the scope query param

Options

  • save? - persists your application information to a file, so, you can use them later. default: false
  • api_base_url - specifies if you want to register an application on a different instance. default: https://mastodon.social

Examples

iex> Hunter.Application.create_app("hunter", "urn:ietf:wg:oauth:2.0:oob", ["read", "write", "follow"], nil, [save?: true, api_base_url: "https://example.com"])
%Hunter.Application{client_id: "1234567890",
 client_secret: "1234567890",
 id: 1234}

load_credentials(name)

@spec load_credentials(String.t()) :: t() | no_return()

Load persisted application's credentials

Parameters

  • name - application name