OAuth kılavuzu
Tüm API çağrıları yetkilendirme gerektirir ve yetkilendirilmiş bir Ahrefs kullanıcısı adına yapılır. Bunu yapmak için uygulamanızın o kullanıcı için bir API erişim belirteci alması gerekir.
Ahrefs Connect, PKCE (Kod Değişimi için Kanıt Anahtarı) ile OAuth 2.0 Yetkilendirme Kodu Akışı kullanır. Süreç iki ana adımdan oluşur:
1. Uygulamayı yetkilendirin
Kullanıcıyı şuraya yönlendirin:
https://app.ahrefs.com/web/oauth/authorize?response_type=code&client_id={client_id}&scope=apiv3-integration-apps&redirect_uri={redirect_uri}&code_challenge={code_challenge}&code_challenge_method=s256&state={state}
Parametreler:
{client_id}: Hesap ayarlarınız içindeki Ahrefs Connect bölümünden URL kodlamalı İstemci Kimliği.{redirect_uri}: Aynı bölümde kaydettiğiniz URL kodlamalı Yönlendirme URI'si.{code_challenge}: S256 yöntemi kullanılarak bir kod doğrulayıcıdan türetilir:- Bir kod doğrulayıcı oluşturun — kriptografik olarak güvenli bir üreticiyle 43–128 karakterlik rastgele bir dize. İzin verilen karakterler:
[A-Z] [a-z] [0-9] - . _ ~(bkz. RFC7636 Bölüm 4.1). - Kod doğrulayıcının SHA-256 hash'ini hesaplayın.
- Hash'i Base64-URL ile kodlayın.
- Bu kodlanmış değeri
code_challengeolarak kullanın (bkz. RFC7636 Bölüm 4.2).
- Bir kod doğrulayıcı oluşturun — kriptografik olarak güvenli bir üreticiyle 43–128 karakterlik rastgele bir dize. İzin verilen karakterler:
{state}: İstek ile geri çağrı arasında durumu korumak için opak bir değer üretin. Yetkilendirme sunucusu, kullanıcıyı uygulamanıza geri yönlendirirken bu değeri ekleyecektir. (bkz. RFC6749 Bölüm 4.1.1)
info
Eski uygulama geliştiricileri için not:
Eski entegrasyon (API v2) ile yeni Ahrefs Connect (API v3) aynı OAuth istemcisini paylaşır. Bu, aynı Yönlendirme URI'sini de paylaştıkları anlamına gelir — uygulamanızın eski ve yeni sürümleri için ayrı üretim Yönlendirme URI'leri yapılandıramazsınız.
Yeni uygulamanız Ahrefs tarafından incelenip etkinleştirildikten ve yayına almaya hazır olduktan sonra Hesap Ayarları'ndaki üretim Redirect URI'sini güncellemenizi öneririz.
Her iki sürüm için de aynı Redirect URI’yi kullanmayı tercih ederseniz, istekleri ayırt etmek için {state} parametresini kullanabilirsiniz. Örneğin, eski uygulama için benzersiz bir dize, yeni uygulama için de başka bir dize ekleyin. Kullanıcıları uygulamanıza geri yönlendirirken OAuth sunucusu aynı {state} değerini döndürdüğünden, sunucunuz bu değere göre farklı bir akış izleyebilir. Bu sayede kullanıcılar, mevcut entegrasyonu bozmadan her iki sürüm için de belirteç üretmeye devam edebilir.

Kullanıcı deneyimi:
- Kullanıcı, Ahrefs yetkilendirme onay ekranını görür.
- Ahrefs API’sine kendi adlarına erişebilmesi için uygulamanıza izin verirler.
- Ahrefs, onları şunlarla birlikte Redirect URI’nize yönlendirir:
codeparametresi — 2. Adımda kullanılırstateparametresi — özgün isteğinizle eşleştiğini doğrulayın.
2. access_token değerini alın
code değerini access_token ile değiştirmek için https://ahrefs.com/oauth/token adresine bir POST isteği gönderin.
application/x-www-form-urlencoded biçimini kullanarak istek gövdesine parametreleri gönderin (bkz. RFC6749 Bölüm 4.1.3):
grant_type:authorization_codeclient_id:{client_id}(1. Adımdakiyle aynı olmalıdır)redirect_uri:{redirect_uri}(1. Adımdakiyle aynı olmalıdır)code:{code}(1. Adımdan)code_verifier:{original_code_verifier}(1. Adımdaki dönüştürülmemiş değer)client_secret:{client_secret}(Yalnızca web uygulamaları — Hesap ayarları içindeki Ahrefs Connect bölümünüzde bulunur. Masaüstü uygulamaları için eklemeyin.)
Yanıt örneği:
{
"access_token": "\<API isteklerinde kullanılacak belirteç>",
"expires_in": \<access_token'ın saniye cinsinden geçerlilik süresi>,
"token_type": "Bearer",
"scope": "apiv3-integration-apps"
}
Belirteç kullanım süresi ve yeniden bağlanma
- Yenileme belirteçleri verilmez.
- Erişim belirteçleri 1 yıl boyunca geçerlidir. Süresi dolduktan sonra kullanıcı, OAuth üzerinden yeniden bağlanmalıdır (yeniden yetkilendirmelidir).
info
Güvenlik notu:
- Asla
access_tokendeğerini son kullanıcılara, yetkilendirme sırasında veya sonrasında (UI, günlükler, URL'ler ya da istemci tarafı kod) açığa çıkarmayın. - Web uygulamaları için
client_secretdeğerini yalnızca sunucu tarafında saklayın. - Onay süreci kapsamında güvenli belirteç kullanımını göstermeniz gerekir.