İçeriğe geç
N'oluyo
REST referansı

OAuth2 (N'oluyo ile giriş)

Kişileri kendi onaylarıyla sitende ya da uygulamanda N'oluyo hesabıyla giriş yaptır. /oauth2/token ve /oauth2/revoke istekleri application/x-www-form-urlencoded gövde alır ve hataları {error, error_description} olarak döndürür; /oauth2/@me ve /oauth2/@me/guilds ise Authorization: Bearer <access_token> ister.

Son güncelleme:

Yetki kodunu ya da yenileme token'ını değiştir

POST/oauth2/token

Tek kullanımlık yetki kodunu (PKCE code_verifier ile) ya da yenileme token'ını 1 saatlik yeni erişim token'ı ve 30 günlük yenileme token'ı ile değiştirir. En çok 8 KiB boyutunda application/x-www-form-urlencoded gövde alır. Gizli istemciler client_secret değerini formda ya da HTTP Basic ile gönderir; açık istemciler gizli anahtar olmadan client_id ve PKCE gönderir. Hatalar standart OAuth2 {error, error_description} nesnesiyle döner.

Kimlik
Herkese açık; kimlik başlığı gerekmez

Gövde alanları

AdTürAçıklama
grant_typezorunlustringauthorization_code, refresh_token
client_idstring
client_secretstring
codestring
redirect_uristring
code_verifierstring
refresh_tokenstring

Örnek istek

curl -X POST "https://noluyo.net/api/v1/oauth2/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code&client_id=111540000000000000&client_secret=$CLIENT_SECRET&code=$CODE&redirect_uri=https%3A%2F%2Fornek.com%2Fcb&code_verifier=$CODE_VERIFIER"

Örnek gövde

application/x-www-form-urlencoded
{
  "grant_type": "authorization_code",
  "client_id": "111540000000000000",
  "client_secret": "<CLIENT_SECRET>",
  "code": "<AUTH_CODE>",
  "redirect_uri": "https://ornek.com/cb",
  "code_verifier": "dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk"
}

Örnek yanıt

200 Başarılı

JSON
{
  "access_token": "<ACCESS_TOKEN>",
  "token_type": "Bearer",
  "expires_in": 3600,
  "refresh_token": "<REFRESH_TOKEN>",
  "scope": "identify email"
}

Hatalar

Erişim ya da yenileme token'ını iptal et

POST/oauth2/revoke

Verilen erişim ya da yenileme token'ının ait olduğu yetkinin tüm token'larını geçersiz kılar. Bilinmeyen ya da başka uygulamaya ait token'lar da 200 döner.

Kimlik
Herkese açık; kimlik başlığı gerekmez

Gövde alanları

AdTürAçıklama
tokenzorunlustring
client_idstring
client_secretstring

Örnek istek

curl -X POST "https://noluyo.net/api/v1/oauth2/revoke" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "client_id=111540000000000000&client_secret=$CLIENT_SECRET&token=$ACCESS_TOKEN"

Örnek gövde

application/x-www-form-urlencoded
{
  "client_id": "111540000000000000",
  "client_secret": "<CLIENT_SECRET>",
  "token": "<ACCESS_TOKEN>"
}

Örnek yanıt

200 Başarılı

JSON
{}

Hatalar

Giriş yapan kişinin kimliğini oku

GET/oauth2/@me

Bir OAuth2 erişim token'ı (identify kapsamı) için uygulamayı, onaylı kapsamları, token bitiş zamanını ve kişinin kimliğini döndürür. email kapsamı da varsa email (doğrulanmamışsa null) ve email_verified alanları eklenir.

Kimlik
OAuth2 erişim token'ı (Bearer)
Hız sınırı
oauth_read 30 istek / 5 sn

Örnek istek

curl "https://noluyo.net/api/v1/oauth2/@me" \
  -H "Authorization: Bearer $ACCESS_TOKEN"

Örnek yanıt

200 Başarılı

JSON
{
  "application": {
    "id": "111540000000000000",
    "name": "Örnek Site"
  },
  "scopes": [
    "identify",
    "email"
  ],
  "expires_at": "2026-11-11T13:00:00Z",
  "user": {
    "id": "111400000000000500",
    "username": "deniz",
    "display_name": "Deniz",
    "avatar": "a1b2c3d4",
    "email": "deniz@ornek.com",
    "email_verified": true
  }
}

Hatalar

Giriş yapan kişinin sunucularını listele

GET/oauth2/@me/guilds

Kişinin üyesi olduğu sunucuları, her birinin sahibi olup olmadığı ve oradaki etkin izin bitleriyle listeler. guilds kapsamını ister.

Kimlik
OAuth2 erişim token'ı (Bearer)
Hız sınırı
oauth_read 30 istek / 5 sn

Örnek istek

curl "https://noluyo.net/api/v1/oauth2/@me/guilds" \
  -H "Authorization: Bearer $ACCESS_TOKEN"

Örnek yanıt

200 Başarılı

JSON
[
  {
    "id": "111500000000000000",
    "name": "Topluluk",
    "icon": null,
    "owner": true,
    "permissions": "9007199254740991"
  }
]

Hatalar