Akışın beş adımı
| Adım | Kim yapar | Ne olur |
|---|---|---|
| 1 | Uygulama | Rastgele bir code_verifier üretir, ondan code_challenge hesaplar |
| 2 | Uygulama | Kullanıcıyı https://www.etsy.com/oauth/connect adresine yönlendirir |
| 3 | Satıcı | Etsy'de istenen izinleri onaylar |
| 4 | Etsy | redirect_uri adresine code ve state değerlerini gönderir |
| 5 | Uygulama | code ve code_verifier ile token ucundan erişim ve yenileme token'ı alır |
Kod tek kullanımlıktır ve yalnız onu başlatan doğrulayıcıyla token'a çevrilebilir. Bu yüzden code_verifier değerini isteği başlattığınız oturumla birlikte saklamanız gerekir.
İzin adresinin parametreleri
İzin isteği, kullanıcının tarayıcısında açılan bir GET adresidir. Etsy belgesindeki parametreler şunlardır (Etsy: Authentication):
- response_type: her zaman code.
- client_id: uygulamanızın keystring değeri.
- redirect_uri: kodun gönderileceği, portalda kayıtlı adres.
- scope: boşlukla ayrılmış ve URL kodlanmış izin listesi; ör. listings_r%20transactions_r.
- state: önerilir; tahmin edilemez, tek kullanımlık bir değer. Dönüşte aynı değer gelmezse akışı durdurun.
- code_challenge ve code_challenge_method: PKCE değeri ve her zaman S256.
PKCE nasıl üretilir?
PKCE, RFC 7636 ile tanımlıdır ve yetkilendirme kodunun başkası tarafından ele geçirilip kullanılmasını engeller (RFC 7636). Etsy'ye göre doğrulayıcı 43 ile 128 karakter arasında olmalı ve yalnız harf, rakam ile . _ ~ - karakterlerini içermelidir.
Pratik yol, güvenli bir rastgele kaynaktan 32 bayt alıp URL güvenli Base64 ile kodlamaktır. code_challenge ise doğrulayıcının SHA-256 özetinin URL güvenli Base64 karşılığıdır. İzin adresine yalnız challenge gider; doğrulayıcı token isteğinde kullanılır.
Token isteği ve yanıtı
Kod geldikten sonra https://api.etsy.com/v3/public/oauth/token adresine application/x-www-form-urlencoded gövdeli bir POST atılır. Gövdede grant_type=authorization_code, client_id, code ve code_verifier bulunur. redirect_uri isteğe bağlıdır; gönderilirse izin isteğindekiyle birebir aynı olmalıdır.
| Yanıt alanı | Anlamı |
|---|---|
| access_token | Başında kullanıcı kimliği ve nokta bulunan erişim token'ı |
| token_type | Her zaman Bearer |
| expires_in | Geçerlilik süresi, saniye; Etsy örneğinde 3600 |
| refresh_token | Yeni erişim token'ı almak için kullanılan değer |
| scope | Gerçekte verilen izinler; istenenlerden az olabilir |
Süreler ve yenileme erişim ve yenileme token'ı sayfasında anlatılıyor.
redirect_uri neden reddedilir?
Etsy adresi portalda kayıtlı metinle harfi harfine karşılaştırır ve büyük-küçük harfe duyarlıdır. Sonda fazladan eğik çizgi ya da soru işareti, http ile https farkı veya www eksikliği eşleşmeyi bozar. Eşleşmeyen adreste Etsy kullanıcıyı uygulamanıza geri göndermez. Kullanıcı izni reddederse dönüş adresine error ve error_description parametreleri gelir; hata kodları RFC 6749'daki listeden seçilir.
Sık sorulanlar
Etsy OAuth için PKCE zorunlu mu?
Evet. Etsy belgesine göre her yetkilendirme akışında PKCE gerekir ve code_challenge_method her zaman S256 olmalıdır.
state parametresini göndermesem olur mu?
Etsy state değerini önerir. PKCE kullanan OAuth 2.1 istemcilerinin bunu atlayabileceğini belirtse de, sahte istek saldırılarına karşı göndermek iyi uygulamadır.
Token isteğinde redirect_uri zorunlu mu?
Hayır, isteğe bağlıdır. Gönderirseniz izin isteğinde kullandığınız adresle birebir aynı olmalıdır; değilse istek reddedilir.
Satıcı izin vermezse ne olur?
Etsy dönüş adresine error, error_description ve state parametrelerini gönderir. Uygulamanız bu durumda kullanıcıya açık bir mesaj göstermeli ve yeni bir state ile tekrar denemelidir.
Kaynaklar
İlgili Etsy API konuları
Son güncelleme: 27.10.2026 · Etsy API rehberinin tamamı


