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.
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.
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.
TsgcHTTP2Client + TsgcHTTP_JWT_Client
Windows, macOS, Linux, iOS, Android
Standard / Professional / Enterprise
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);
İşbirliği yapan iki bileşen APNs'yi uçtan uca işler — HTTP/2 çerçeveleme ve JWT oluşturma.
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).
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.
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.
Apple'ın belgelerine göre apns-topic, apns-priority, apns-push-type, apns-collapse-id, apns-expiration için Request.CustomHeaders ayarlayın.
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.
Çekirdek modu TLS (DLL gerekmez) için Windows'ta iohSChannel veya çok platformlu sunucu dağıtımları için iohOpenSSL kullanın.
Bu bileşenin uyguladığı API'ler için yetkili kaynaklar.
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ı. | Aç | |
| 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. | Aç | |
| 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. | Aç | |
| Kullanıcı Kılavuzu (PDF) Kütüphanedeki her bileşeni kapsayan kapsamlı kılavuz. | Aç |