Atex.XRPC.Client (atex v0.2.0)

View Source

Summary

Functions

Struct to store client information for ATProto XRPC.

Create a new Atex.XRPC.Client by logging in with an identifier and password to fetch an initial pair of access & refresh tokens.

Create a new Atex.XRPC.Client from an endpoint, and optionally an access/refresh token.

Request a new refresh_token for the given client.

Types

t()

@type t() :: %Atex.XRPC.Client{
  access_token: (String.t() | nil) | nil,
  endpoint: String.t(),
  refresh_token: (String.t() | nil) | nil
}

Functions

%Atex.XRPC.Client{}

(struct)

Struct to store client information for ATProto XRPC.

login(endpoint, identifier, password, auth_factor_token \\ nil)

@spec login(String.t(), String.t(), String.t(), String.t() | nil) ::
  {:ok, t()} | Atex.XRPC.Adapter.error()

Create a new Atex.XRPC.Client by logging in with an identifier and password to fetch an initial pair of access & refresh tokens.

Uses com.atproto.server.createSession under the hood, so identifier can be either a handle or a DID.

Examples

iex> Atex.XRPC.Client.login("https://bsky.social", "example.com", "password123")
{:ok, %Atex.XRPC.Client{...}}

new(endpoint, access_token \\ nil, refresh_token \\ nil)

@spec new(String.t(), String.t() | nil, String.t() | nil) :: t()

Create a new Atex.XRPC.Client from an endpoint, and optionally an access/refresh token.

Endpoint should be the base URL of a PDS, or an AppView in the case of unauthenticated requests (like Bluesky's public API), e.g. https://bsky.social.

refresh(client)

@spec refresh(t()) :: {:ok, t()} | Atex.XRPC.Adapter.error()

Request a new refresh_token for the given client.