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.
Yetki kodunu ya da yenileme token'ını değiştir
/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ı
| Ad | Tür | Açıklama |
|---|---|---|
grant_typezorunlu | string | authorization_code, refresh_token |
client_id | string | |
client_secret | string | |
code | string | |
redirect_uri | string | |
code_verifier | string | |
refresh_token | string |
Ö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
{
"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ı
{
"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
/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ı
| Ad | Tür | Açıklama |
|---|---|---|
tokenzorunlu | string | |
client_id | string | |
client_secret | string |
Ö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
{
"client_id": "111540000000000000",
"client_secret": "<CLIENT_SECRET>",
"token": "<ACCESS_TOKEN>"
}Örnek yanıt
200 Başarılı
{}Hatalar
| Durum | Kodlar |
|---|---|
| 400 | invalid_request |
| 401 | invalid_client |
| 429 | temporarily_unavailable |
| 503 | temporarily_unavailable |
Giriş yapan kişinin kimliğini oku
/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ı
{
"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
| Durum | Kodlar |
|---|---|
| 401 | unauthorized |
| 429 | rate_limited |
| 503 | maintenance |
Giriş yapan kişinin sunucularını listele
/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ı
[
{
"id": "111500000000000000",
"name": "Topluluk",
"icon": null,
"owner": true,
"permissions": "9007199254740991"
}
]Hatalar
| Durum | Kodlar |
|---|---|
| 401 | unauthorized |
| 403 | oauth_scope_required |
| 429 | rate_limited |
| 503 | maintenance |