Android uygulama paketi adının doğrulanmış bir geliştiriciye kayıtlı olup olmadığını kontrol etmek için Android Developer Status API'yi kullanın. Yazılım geliştirme araçları, IDE'ler veya otomatik CI/CD iş akışları oluşturuyorsanız bu sunucudan sunucuya API'yi entegre ederek aşağıdakileri yapabilirsiniz:
- Uygulama paket adının doğrulanmış bir geliştiriciye kayıtlı olup olmadığını kontrol etme
- Bir uygulamanın imzalama sertifikasının SHA-256 parmak izinin, kayıtlı paket adı için dosyadaki kimlik bilgilerine uygun olup olmadığını doğrulama
- Aracınızın arayüzünde geliştiricilerden, tanınmayan uygulamaları Android geliştirici doğrulama programına kaydetmelerini isteme
Bu API, çeşitli geliştirici iş akışlarını destekleyecek şekilde tasarlanmıştır:
| Kullanım alanı | Açıklama | API uç noktası |
|---|---|---|
| Paket adı uygunluğu | Bir paket adının daha önce kaydedilip kaydedilmediğini kontrol etme Paket adı doğrulanmış bir geliştiriciye bağlıysa REGISTERED, aksi takdirde NOT_REGISTERED değerini döndürür. |
CheckPackageRegistrationStatus |
| Uygulama kaydedildi | Belirli bir paket adı ve sertifika parmak izi çiftinin kayıtlı olup olmadığını kontrol etme Paket adı ve sertifika parmak izi çifti kayıtlıysa REGISTERED, paket adı ve sertifika parmak izi çifti kayıtlı değilse NOT_REGISTERED, paket adı farklı bir sertifika parmak iziyle kayıtlıysa REGISTERED_WITH_ANOTHER_CERTIFICATE_FINGERPRINT değerini döndürür. |
CheckPackageRegistrationStatus |
Bu kılavuzda aşağıdaki görevlerin nasıl tamamlanacağı açıklanmaktadır:
- Google Cloud API erişimini ve kimlik doğrulamasını ayarlayın.
- Bir uygulamanın paket adı ve herkese açık sertifika SHA-256 parmak izi çiftinin, sağlanan herkese açık sertifika SHA-256 parmak izi veya farklı bir herkese açık sertifika SHA-256 parmak izi ile doğrulanmış bir geliştirici tarafından Android geliştirici doğrulama programına kaydedilip kaydedilmediğini doğrulayın.
- IDE'nizdeki veya geliştirici aracı iş akışınızdaki API kayıt durumlarını yönetin.
Ön koşullar
Bu belge, Android uygulama geliştiricileri veya yazılım geliştirme aracı geliştiricileri için hazırlanmıştır. Başlamadan önce şunlara sahip olmanız gerekir:
- Bir Google Cloud projesine yönetim erişimi.
- RESTful API'ler, JSON ve SHA-256 sertifika parmak izleri hakkında temel bilgiler.
Ayrıca aşağıdaki terimleri de bilmeniz gerekir:
| Terim | Tanım |
|---|---|
| Android geliştirici doğrulaması | Android geliştirici doğrulaması, gerçek dünyadaki tüzel kişileri (bireyler ve kuruluşlar) Android uygulamalarıyla ilişkilendirmek için tasarlanmış yeni bir şarttır. Android, kullanıcıların sertifikalı Android cihazlara yükleyebilecekleri tüm uygulamaların doğrulanmış geliştiriciler tarafından kaydedilmiş olmasını zorunlu kılacaktır. |
| Sertifika parmak izi | Uygulamayı imzalamak için kullanılan ortak sertifikanın SHA-256 hash değeri. |
| Kayıt durumu | Bir uygulamanın paket adı veya bir uygulamanın paket adı ve herkese açık sertifika SHA-256 parmak izi çifti için API tarafından döndürülen durum. Bu durum, yapmanız gereken işlemi belirler (örneğin, REGISTERED, NOT_REGISTERED). |
Hizmet uç noktası
Hizmet uç noktası, bir API hizmetinin ağ adresini belirten ana URL'dir. Bu hizmet aşağıdaki hizmet uç noktasını kullanır ve tüm URI'ler bu hizmet uç noktasıyla ilgilidir:
https://androiddeveloperidstatus.googleapis.com
API'yi etkinleştirme
Android Developer ID Status API'yi kullanmak için proje oluşturma ve API'yi etkinleştirme ile ilgili kurulum adımlarını tamamlamanız gerekir.
Google Cloud projesi oluşturma
- Hesabınız yoksa Google Cloud hesabı oluşturun.
- Google Cloud Console'u açın.
- Google Cloud projesi oluşturun.
Projenizde API'yi etkinleştirme
- Google Cloud Console'da API'ler ve Hizmetler > Kitaplık'a gidin.
- Açılır menüden projenizi seçin.
- Android Developer ID Status API'yi arayın.
- Etkinleştir'i tıklayın.
Kimliği doğrula
API, API anahtarı kimlik bilgilerini destekler. API anahtarı almak için:
- Google Cloud Console'da API'ler ve Hizmetler > Kimlik Bilgileri'ne gidin.
- + Create credentials'ı (Kimlik bilgileri oluştur) tıklayın ve API key'i (API anahtarı) seçin.
- Anahtarı yapılandırın ve kopyalayın. Bu anahtarı istek başlıklarınızda kullanın.
Uygulama kayıt durumunu kontrol etme
Yalnızca bir paket adını doğrulamak için PackageRegistrationStatus kaynağını sorgulayabilir veya belirli bir sertifika parmak iziyle eşleştirilmiş bir paket adını kontrol edebilirsiniz.
Paket adını kontrol etme
Bir uygulama paket adının doğrulanmış bir geliştirici tarafından kaydedilip kaydedilmediğini kontrol etmek için packageRegistrationStatus:check uç noktasına, Android uygulamasının paket adını (ör. com.example.app) içeren kimliği doğrulanmış bir GET isteği gönderin. Bu istekte isteğe bağlı parametreler bulunmamalıdır:
İstek:
curl -X GET "https://androiddeveloperidstatus.googleapis.com/v1/packages/com.example.app/packageRegistrationStatus:check" \
-H "X-Goog-Api-Key: [key]"
Sonuçlar
Yanıt (Kayıtlı):
Paket adı kayıtlıysa 200 HTTP yanıt koduyla birlikte aşağıdaki HTTP yanıt gövdesini alırsınız:
{
"name": "packages/com.example.app/packageRegistrationStatus",
"state": "REGISTERED"
}
Önerilen işlem: Geliştiriciyi, paket adının zaten kayıtlı olduğu konusunda bilgilendirin.
Yanıt (Kayıtlı değil):
Paket adı kayıtlı değilse HTTP yanıt kodu 200 ile aşağıdaki HTTP yanıt gövdesini alırsınız:
{
"name": "packages/com.example.app/packageRegistrationStatus",
"state": "NOT_REGISTERED"
}
Paket adı ve sertifika parmak izi çiftlerini doğrulama
Bir uygulama paket adının belirli bir ortak sertifika SHA-256 parmak iziyle kaydedilip kaydedilmediğini kontrol etmek için certificateFingerprint sorgu parametresini iletin:
İstek:
curl -X GET "https://androiddeveloperidstatus.googleapis.com/v1/packages/com.example.app/packageRegistrationStatus:check?certificateFingerprint=d6ac89ed1d0a805aad4b087d06d5f41645b814480b133fbc867ef7498d069e06" \
-H "X-Goog-Api-Key: [key]"
Sonuçlar
Yanıt (eşleşen sertifika parmak iziyle kaydedilmiş):
Paket adı, sağlanan herkese açık sertifika SHA-256 parmak iziyle kaydedilmişse HTTP yanıt kodu 200 ile birlikte aşağıdaki HTTP yanıt gövdesini alırsınız:
{
"name": "packages/com.example.app/packageRegistrationStatus",
"state": "REGISTERED"
}
Yanıt (Farklı sertifika parmak iziyle kaydedildi):
Paket adı, sağlanan sertifika SHA-256 parmak izinden farklı bir sertifika SHA-256 parmak iziyle kaydedilmişse HTTP yanıt kodu 200 ile birlikte aşağıdaki HTTP yanıt gövdesini alırsınız:
{
"name": "packages/com.example.app/packageRegistrationStatus",
"state": "REGISTERED_WITH_ANOTHER_CERTIFICATE_FINGERPRINT"
}
Yanıt (Kayıtlı değil):
Paket adı, sağlanan herkese açık sertifika SHA-256 parmak iziyle kaydedilmemişse HTTP yanıt kodu 200 ile birlikte aşağıdaki HTTP yanıt gövdesini alırsınız:
{
"name": "packages/com.example.app/packageRegistrationStatus",
"state": "NOT_REGISTERED"
}
Örnek Java uygulaması
Aşağıdaki Java sınıfı, Java 11'in standart HttpClient'ını kullanarak API'nin nasıl çağrılacağını gösterir.
import java.io.IOException;
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
public class DeveloperIdStatusClient {
private static final String API_ENDPOINT = "https://androiddeveloperidstatus.googleapis.com";
public static void main(String[] args) {
String apiKey = "YOUR_API_KEY";
String packageName = "com.example.app";
String certificateFingerprint = "d6ac89ed1d0a805aad4b087d06d5f41645b814480b133fbc867ef7498d069e06";
try {
String response = checkPackageRegistrationStatus(apiKey, packageName, certificateFingerprint);
System.out.println("Response: " + response);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
/**
* Checks the registration status of an Android package.
*
* @param apiKey The Google API key for authentication.
* @param packageName The fully-qualified Android package name (for example, "com.example.app").
* @param certificateFingerprint Optional SHA-256 certificate fingerprint. Pass null or empty to omit.
* @return The JSON response string from the API.
*/
public static String checkPackageRegistrationStatus(
String apiKey, String packageName, String certificateFingerprint)
throws IOException, InterruptedException {
// 1. Build the URL path (accepts dots directly)
// Format: /v1/packages/{package}/packageRegistrationStatus:check
String path = String.format("/v1/packages/%s/packageRegistrationStatus:check", packageName);
// 2. Build query parameters (only certificateFingerprint if provided)
StringBuilder queryBuilder = new StringBuilder();
if (certificateFingerprint != null && !certificateFingerprint.isEmpty()) {
queryBuilder.append("certificateFingerprint=")
.append(URLEncoder.encode(certificateFingerprint, StandardCharsets.UTF_8));
}
String fullUrl = API_ENDPOINT + path;
if (queryBuilder.length() > 0) {
fullUrl += "?" + queryBuilder.toString();
}
// 3. Create and send the HTTP GET request with API Key header
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(fullUrl))
.header("Accept", "application/json")
.header("X-Goog-Api-Key", apiKey)
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() != 200) {
throw new IOException("Unexpected response code: " + response.statusCode() + ", body: " + response.body());
}
return response.body();
}
}
Kayıt durumlarını ve hata işlemeyi anlama
Bir API isteği başarısız olduğunda Android Developer ID Status API, yanıt gövdesinde standart bir Google Cloud JSON hata nesnesi döndürür. Bu nesne, hatayı anlamak ve işlemek için tutarlı bir yapı sağlar.
Örnek hata yanıtı:
{
"error": {
"code": 400,
"message": "Request contains an invalid argument.",
"status": "INVALID_ARGUMENT"
}
}
Hata nesnesi aşağıdaki anahtar alanlarını içerir:
code: HTTP durum kodu (örneğin,400,403,500).message: Hatayla ilgili, geliştiricilere yönelik İngilizce açıklama. Bu mesaj kararlı değildir ve değişebilir. Bu nedenle, mesajla ilgili ayrıştırma mantığı oluşturmayın.status: Hata türünü programatik olarak tanımlayan standart bir hata kodu (örneğin,INVALID_ARGUMENT,PERMISSION_DENIED). Hata işleme mantığınız bu sabit tanımlayıcı üzerine kurulmalıdır.
Aşağıdaki tabloda, API tarafından döndürülen en yaygın hatalar ve önerilen işlem sırası listelenmektedir.
| HTTP durumu | Standart hata kodu (status) |
Anlamı ve yaygın nedeni | Önerilen işlem | Yeniden denenebilir mi? |
|---|---|---|---|---|
400 Hatalı İstek |
INVALID_ARGUMENT |
İstek yanlış biçimlendirilmiş. | Tekrar denemeyin. Belirli alan ihlalini belirlemek için hata yanıtındaki ayrıntılar alanını inceleyin. İstek yükünü düzeltip tekrar gönderin. | Hayır |
401 Yetkisiz |
UNAUTHENTICATED |
Erişim jetonu eksik, süresi dolmuş veya geçersiz. | Hemen yeniden denemeyin. Doğru erişim jetonunu veya anahtarını kullandığınızdan emin olun. | Hayır |
403 Yasak |
PERMISSION_DENIED |
Kimliğiniz doğrulandı ancak projenizin API'ye erişme izni yok. En yaygın neden, API'yi Google Cloud projenizde etkinleştirmemiş olmanızdır. | Tekrar denemeyin. Doğru proje kimliğini kullandığınızı ve API'nin etkinleştirildiğini doğrulayın. | Hayır |
429 Too Many Requests |
RESOURCE_EXHAUSTED |
Projenizin API kotasını aştınız. | İstek göndermeyi durdurun ve bir süre sonra tekrar deneyin. Google Cloud Console'da projenizin kotalarını kontrol edin. | Evet |
500 Dahili Sunucu Hatası |
INTERNAL |
Google'ın sunucularında beklenmeyen bir hata oluştu. | Bu muhtemelen geçici bir sorundur. İsteği eksponansiyel geri yükleme stratejisi kullanarak yeniden deneyin. Hata devam ederse destek ekibiyle iletişime geçin. | Evet |
503 Hizmet Kullanılamıyor |
UNAVAILABLE |
Hizmet geçici olarak kullanılamamaktadır. | İsteği eksponansiyel geri yükleme stratejisi kullanarak yeniden deneyin. | Evet |
Kota sınırları
Hizmetin güvenilirliğini sağlamak için kullanım kotaları proje bazında uygulanır.
| API yöntemi | Varsayılan sınır (proje başına) | Notlar |
|---|---|---|
CheckPackageRegistrationStatus |
Günde 1.000 istek | Arayanların kötüye kullanımı önlemek için dahili sıklık sınırlandırmayı yönetmesi gerekir. |
Kullanımınızı izleme
Projenizin mevcut API kullanımını izleyebilir ve kota sınırlarınıza ne kadar yaklaştığınızı doğrudan Google Cloud Console'da görebilirsiniz.
- API'ler ve Hizmetler > Kontrol Paneli sayfasına gidin.
- Android Developer ID Status API'yi seçin.
- Kotalar sekmesini tıklayın.
Bu kontrol panelinde, zaman içindeki istek hacminizin ayrıntılı dökümü yer alır.