Apple Push Notifications

APNs anlık bildirimlerini Delphi'den HTTP/2 üzerinden api.push.apple.com adresine gönderin. Hem sertifika tabanlı hem de token tabanlı (JWT ES256) kimlik doğrulamayı destekler.

TsgcHTTP2Client + TsgcHTTP_JWT_Client

APNs'yi yönetmek için TsgcHTTP2Client'ı (HTTP/2 taşıma) TsgcHTTP_JWT_Client (ES256 token oluşturma) ile eşleştirin — eski ikili protokol kullanımdan kaldırıldığından beri Apple'ın önerdiği kombinasyon.

Bileşen sınıfı

TsgcHTTP2Client + TsgcHTTP_JWT_Client

Protokol

APNs HTTP/2

Platformlar

Windows, macOS, Linux, iOS, Android

Sürüm

Standard / Professional / Enterprise

Bir JWT imzalayın, uyarıyı POST edin, HTTP/2 durumunu izleyin

TsgcHTTP_JWT_Client'ı APNs ES256 özel anahtarınız ve key/team kimliklerinizle yapılandırın, TsgcHTTP2Client.Authentication.Token.JWT'ye bağlayın, ardından JSON yükünü /3/device/<token> adresine POST edin.

uses
  sgcHTTP, sgcBase_Helpers;

var
  HTTP2: TsgcHTTP2Client;
  JWT: TsgcHTTP_JWT_Client;
begin
  JWT := TsgcHTTP_JWT_Client.Create(nil);
  JWT.JWTOptions.Header.alg := jwtES256;
  JWT.JWTOptions.Header.kid := 'APPLE-KEY-ID';
  JWT.JWTOptions.Payload.iss := 'APPLE-TEAM-ID';
  JWT.JWTOptions.Payload.iat := StrToInt64(GetDateTimeUnix(Now, False));
  JWT.JWTOptions.Algorithms.ES.PrivateKey.LoadFromFile('AuthKey_XXX.p8');
  JWT.JWTOptions.RefreshTokenAfter := 40 * 60;

  HTTP2 := TsgcHTTP2Client.Create(nil);
  HTTP2.TLSOptions.IOHandler := iohSChannel;
  HTTP2.Authentication.Token.JWT := JWT;
  HTTP2.Request.CustomHeaders.Clear;
  HTTP2.Request.CustomHeaders.Add('apns-topic: com.example.app');

  HTTP2.Post(
    'https://api.push.apple.com/3/device/',
    '{"aps":{"alert":"hello","sound":"default"}}');
end;
// uses: sgcHTTP
TsgcHTTP_JWT_Client *JWT = new TsgcHTTP_JWT_Client(this);
JWT->JWTOptions->Header->alg = jwtES256;
JWT->JWTOptions->Header->kid = "APPLE-KEY-ID";
JWT->JWTOptions->Payload->iss = "APPLE-TEAM-ID";
JWT->JWTOptions->Algorithms->ES->PrivateKey->LoadFromFile("AuthKey_XXX.p8");

TsgcHTTP2Client *HTTP2 = new TsgcHTTP2Client(this);
HTTP2->Authentication->Token->JWT = JWT;
HTTP2->Request->CustomHeaders->Add("apns-topic: com.example.app");
HTTP2->Post("https://api.push.apple.com/3/device/", payload);

İçeriğinde neler var

İşbirliği yapan iki bileşen APNs'yi uçtan uca işler — HTTP/2 çerçeveleme ve JWT oluşturma.

Token tabanlı kimlik doğrulama

Apple AuthKey_*.p8 özel anahtarınızla imzalanmış ES256 JWT'leri. JWT istemcisi token'ı her 40 dakikada bir otomatik olarak yeniler (Apple bir saat içinde döndürme bekler).

Sertifika tabanlı kimlik doğrulama

Eski evrensel sertifikalar için TLSOptions.CertFile + Password ayarlayın ve Authentication.Token.JWT değerini temizleyin. TLS el sıkışması bağlantının kimliğini doğrular.

Üretim / Sandbox

URL'yi üretim için api.push.apple.com veya sandbox için api.development.push.apple.com adresine yönlendirin — aynı bileşen, yalnızca farklı bir ana bilgisayar.

apns-topic + başlıklar

Apple'ın belgelerine göre apns-topic, apns-priority, apns-push-type, apns-collapse-id, apns-expiration için Request.CustomHeaders ayarlayın.

HTTP/2 çoklama

Tek bir TLS bağlantısı dakikada binlerce push gönderir — HTTP/2 akışları istekleri çoklar. Teslimat sonuçları için her çağrıda Response.Status değerini inceleyin.

SChannel veya OpenSSL

Çekirdek modu TLS (DLL gerekmez) için Windows'ta iohSChannel veya çok platformlu sunucu dağıtımları için iohOpenSSL kullanın.

Spesifikasyonlar ve referanslar

Bu bileşenin uyguladığı API'ler için yetkili kaynaklar.

Belgeler ve Demolar

Bileşen referansına doğrudan bağlanın, kullanıma hazır demo projesini alın ve denemeyi indirin.

Çevrimiçi Yardım — TsgcHTTP2Client Bu bileşen için tam özellik, metot ve olay referansı.
Demo Projesi — Demos\20.HTTP_Protocol\07.Apple_Push_Notifications Kullanıma hazır örnek proje. sgcWebSockets paketi içinde gelir — aşağıdan denemeyi indirin.
Teknik Belge (PDF) Delphi ve C++ Builder için özellikler, hızlı başlangıç, kod örnekleri ve birincil kaynak referansları — yalnızca bu bileşen.
Kullanıcı Kılavuzu (PDF) Kütüphanedeki her bileşeni kapsayan kapsamlı kılavuz.

Delphi'den APNs Push'ları Göndermeye Hazır mısınız?

Ücretsiz denemeyi indirin ve Apple Push Notifications'ı Delphi uygulamalarınıza entegre edin.