mirror of
https://github.com/mastodon/documentation
synced 2025-04-11 22:56:17 +02:00

* Improve deprecation messaging for Application#vapid_key * Format JSON examples in Instance methods * Remove vapid_key from Apps API examples, since this property is deprecated on Application entity * Add documentation for new OAuth 2.0 features added in 4.3.0 * Improve documentation for oauth-scopes * Update content/en/api/oauth-scopes.md Co-authored-by: Matt Jankowski <matt@jankowski.online> * Update content/en/api/oauth-scopes.md Co-authored-by: Matt Jankowski <matt@jankowski.online> * Update content/en/api/oauth-scopes.md Co-authored-by: Matt Jankowski <matt@jankowski.online> * Update content/en/api/oauth-scopes.md Co-authored-by: Matt Jankowski <matt@jankowski.online> * Add deprecated and removed shortcode labels * Use deprecated and removed shortcodes * Improve OAuth documentation * More OAuth documentation improvements * Correct streaming API documentation after 4.2.0 changes * Add note about improved Push Subscription API validation in 4.3.0 * Fix inconsistent OAuth label formatting * Add note that there is a relationship between Accounts and the Application used to create them * Add note that application registration endpoint also supports JSON bodies * Be consistent in the formatting of placeholder values for Bearer tokens * code review changes * Slight changes in wording * Add documentation for PKCE * Removal of crypto oauth scope * Cross-link authorization's scope with the OAuth Scopes documentation * Update content/en/methods/oauth.md * Update content/en/api/oauth-scopes.md --------- Co-authored-by: Matt Jankowski <matt@jankowski.online> Co-authored-by: David Roetzel <david@roetzel.de>
114 lines
3.7 KiB
Markdown
114 lines
3.7 KiB
Markdown
---
|
|
title: Application
|
|
description: Represents an application that interfaces with the REST API to access accounts or post statuses.
|
|
menu:
|
|
docs:
|
|
parent: entities
|
|
aliases: [
|
|
"/entities/application",
|
|
"/entities/Application",
|
|
"/api/entities/application",
|
|
"/api/entities/Application",
|
|
]
|
|
---
|
|
|
|
## Example
|
|
|
|
```json
|
|
{
|
|
"name": "Test Application",
|
|
"website": "https://app.example",
|
|
"scopes": ["read", "write", "push"],
|
|
"redirect_uri": "https://app.example/callback\nhttps://app.example/register",
|
|
"redirect_uris": [
|
|
"https://app.example/callback",
|
|
"https://app.example/register"
|
|
]
|
|
}
|
|
```
|
|
|
|
## Attributes
|
|
|
|
### `name` {#name}
|
|
|
|
**Description:** The name of your application.\
|
|
**Type:** String\
|
|
**Version history:**\
|
|
0.9.9 - added
|
|
|
|
### `website` {{%optional%}} {#website}
|
|
|
|
**Description:** The website associated with your application.\
|
|
**Type:** {{<nullable>}} String (URL)\
|
|
**Version history:**\
|
|
0.9.9 - added\
|
|
3.5.1 - this property is now nullable
|
|
|
|
### `scopes` {#scopes}
|
|
|
|
**Description:** The scopes for your application. This is the registered `scopes` string split on whitespace.\
|
|
**Type:** Array of Strings\
|
|
**Version history:**\
|
|
4.3.0 - added
|
|
|
|
### `redirect_uris` {#redirect_uris}
|
|
|
|
**Description:** The registered redirection URI(s) for your application.\
|
|
**Type:** Array of String (URLs or `"urn:ietf:wg:oauth:2.0:oob"` as values)\
|
|
**Version history:**\
|
|
4.3.0 - added
|
|
|
|
### `redirect_uri` {{%deprecated%}} {#redirect_uri}
|
|
|
|
**Description:** The registered redirection URI(s) for your application.\
|
|
May contain `\n` characters when multiple redirect URIs are registered.\
|
|
**Type:** String\
|
|
**Version history:**\
|
|
0.0.0 - added\
|
|
4.3.0 - deprecated in favour of [`redirect_uris`]({{< relref "entities/Application#redirect_uris" >}}), since the value of this property is not a well-formed URI when multiple redirect URIs are registered
|
|
|
|
### `vapid_key` {{%deprecated%}} {#vapid_key}
|
|
|
|
**Description:** Used for Push Streaming API. Returned with [POST /api/v1/apps]({{< relref "methods/apps#create" >}}). Equivalent to [WebPushSubscription#server_key]({{< relref "entities/WebPushSubscription#server_key" >}}) and [Instance#vapid_public_key]({{< relref "entities/Instance#vapid_public_key" >}})\
|
|
**Type:** String\
|
|
**Version history:**\
|
|
2.8.0 - added\
|
|
4.3.0 - deprecated pending removal, please see [api/v2/instance]({{< relref "methods/Instance#v2">}}) for this value (`configuration.vapid.public_key`)
|
|
|
|
## CredentialApplication attributes {#CredentialApplication}
|
|
|
|
All [Application](#attributes) attributes and the following:
|
|
|
|
### `client_id` {#client_id}
|
|
|
|
**Description:** Client ID key, to be used for obtaining OAuth tokens\
|
|
**Type:** String\
|
|
**Version history:**\
|
|
0.9.9 - added
|
|
4.3.0 - moved to `CredentialApplication` from `Application`
|
|
|
|
### `client_secret` {#client_secret}
|
|
|
|
**Description:** Client secret key, to be used for obtaining OAuth tokens\
|
|
**Type:** String\
|
|
**Version history:**\
|
|
0.9.9 - added
|
|
4.3.0 - moved to `CredentialApplication` from `Application`
|
|
|
|
### `client_secret_expires_at` {#client_secret_expires_at}
|
|
|
|
**Description:** When the client secret key will expire at, presently this always returns `0` indicating that OAuth Clients do not expire\
|
|
**Type:** String\
|
|
**Version history:**\
|
|
4.3.0 - added
|
|
|
|
## See also
|
|
|
|
{{< page-relref ref="methods/apps" caption="apps API methods" >}}
|
|
|
|
{{< page-relref ref="entities/Status#application" caption="Status (`application` attribute)" >}}
|
|
|
|
{{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/application_serializer.rb" caption="app/serializers/rest/application_serializer.rb" >}}
|
|
|
|
{{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/credential_application_serializer.rb" caption="app/serializers/rest/credential_application_serializer.rb" >}}
|