OAuth2 + Install URLs
Wire-compatible ang OAuth2 flow ng GameVox sa Discord. Tugma ang authorize URL, token exchange, at scope names; authorization-code at refresh-token grants lang ang suportado ng GameVox. Tinatalakay ng page na ito ang ilang fields na nagtatakda kung paano gagana ang install link mo at kung paano ire-render ang install confirm screen.
Gusto mo bang mag-sign in ang mga tao sa sarili mong website o app, nang walang bot? Tingnan ang Log in with GameVox.
Endpoints
GET https://gamevox.com/oauth2/authorize/
POST https://app-api.gamevox.com/api/oauth2/token
POST https://app-api.gamevox.com/api/oauth2/token/revoke
GET https://app-api.gamevox.com/api/oauth2/@me Authorize URL lang ang kailangan ng server install: pipili ang user ng server at idadagdag ang bot, walang code na kailangang i-exchange. Para sa Log in with GameVox ang token endpoints.
Client credentials
Bawat application ay may client ID (ang application snowflake) at client secret. Ipinapakita ang secret nang isang beses pag-create ng app at isang beses pag-rotate; bcrypt hash lang kasama ang prefix + last4 ang sine-save namin.
- Pag-rotate:
POST /developer-portal/applications/{id}/reset-secret. Agad na nagiging invalid ang dating secret. - Gamit: ina-authenticate ng secret ang backend mo sa token endpoint para sa Log in with GameVox. Walang public clients at walang
client_credentialsgrant: kailangan ng secret sa bawat token request, may PKCE man o wala.
Install contexts
Dalawang checkbox sa Installation tab, hiwalay sa isa't isa:
- User install: hindi pa available. Nase-save ang setting, pero hangga't hindi pa nailalabas ang user installs, tinatanggihan sa consent screen ang install links na may
integration_type=1at walangbotscope. - Server install: sa isang server naka-install ang bot; sa server na iyon lang magagamit ang commands.
Kailangang naka-enable ang kahit isa. Nagba-branch ang install confirm screen depende sa available: kung parehong naka-on, ang user ang pipili; kung isa lang, nakatago ang picker.
Tungkol sa wire format: install_guild_install ang pangalan ng column para sa “server install” para manatiling byte-identical sa Discord. “Server” ang nakasulat sa portal UI dahil servers ang tawag ng GameVox sa kanila, hindi guilds.
Default install settings
Para sa bawat naka-enable na context, kino-configure mo ang scopes at (para sa server install) ang permission bitfield na naka-pre-select sa install confirm screen. Puwede pa ring bawasan ng user ang scopes sa confirm screen.
- Scopes: max 25 kada context. Charset
[a-z0-9._-]. Tahimik na tinatanggal ang mga duplicate. - Permissions (server install lang): decimal string, max 32 chars. Tugma sa permission integer ng Discord.
Mga karaniwang default:
User install → ["applications.commands"]
Server install → ["bot", "applications.commands"], perms="0" Install link mode
Pinipili ng dropdown kung paano magre-resolve ang Install button sa directory listing mo:
- None: walang install button; ikaw mismo ang bahala sa install sa ibang paraan.
- GameVox-provided: kami ang gagawa ng URL mula sa default install settings mo. Ipinapakita ng portal ang effective URL sa ilalim.
- Custom URL: ikaw ang magbibigay ng fully-qualified na
https://URL (hal. sarili mong install gateway na nag-i-issue ng per-user state).
Shape ng GameVox-provided URL
https://gamevox.com/oauth2/authorize
?client_id={application.id}
&permissions={perms}
&scope={url-encoded na scopes na pinagdugtong ng space}
&integration_type={0=server, 1=user}
&response_type=code Kapag parehong naka-enable ang contexts, hindi isinasama ng link ang integration_type at ire-render ng confirm screen ang picker.
Public key + HTTP-mode interactions
Bawat app ay may 32-byte Ed25519 public key, na read-only na naka-display sa Pangkalahatang Impormasyon tab. I-set ang Interactions Endpoint URL mo sa application settings at magpo-POST ang GameVox ng interaction payloads doon, naka-sign gamit ang katapat na private key. Ang mga library na nag-a-auto-load ng public key (discord-interactions at iba pa) ay nagve-verify ng signatures nang walang dagdag na config.
- Kung naka-configure ang endpoint at nagbabalik ito ng
2xx, sa HTTP lang idini-deliver ang interaction; walang dumadaan sa gateway. - Kung hindi ma-reach ang endpoint o nagbabalik ito ng hindi
2xx, babalik ang GameVox sa pag-dispatch ng interaction sa gateway session ng bot mo. - Tugma sa Discord byte-for-byte ang signature scheme, header names, at PING acknowledgment.
- Ang interactions sa self-hosted servers ay dine-deliver sa parehong paraan tulad ng sa cloud servers.
- Panatilihin pa ring nakakonekta ang isang gateway session. Dito ipinapasa ng GameVox ang bawat interaction sa app mo bago ito i-POST sa endpoint mo, kaya kapag walang nakakonektang session, walang nade-deliver.
- Hindi pinapansin ang response body, maliban sa PING na ipinapadala ng I-ping ang endpoint button. Sagutin ang bawat interaction sa pamamagitan ng pagtawag sa
POST /interactions/{id}/{token}/callback.
Scopes
| Scope | Epekto |
|---|---|
bot | Kailangan para sa server installs na naglalagay ng bot user sa server. |
applications.commands | Pinapayagan ang app na mag-register ng slash / user / message commands sa install scope. |
identify, email, guilds, role_connections.write | Mga scope para sa user sign-in, ginagamit nang walang bot. Tingnan ang Log in with GameVox. |
Mga pagkakaiba sa Discord
- Walang Premium Apps / entitlements;
applications.commands.permissions.updatelang ang commands-permissions endpoint na meron kami. - Walang “team-managed” identity para sa tokens. Kahit sa apps na pag-aari ng team, sa application nakapangalan ang OAuth tokens, hindi sa isang partikular na miyembro ng team.
- Nilalampasan ng App Testers (Teams tab) ang public/private gate sa install confirm screen para sa private apps. Ang mga user na nasa testers roster ay puwedeng mag-install ng private app; not-found page naman ang makikita ng iba.