2017-02-19 21 views
5

pushsharpは、Apple Push Notification認証キー(有効期限はありません)を使用してAPNを送信するための新しいApple approachをサポートします。プッシュシャープと一緒に使う方法はありますか?そうでなければ、それをサポートする他のC#ライブラリがありますか?Appleプッシュ通知認証キーのPushsharpサポート

+0

こんにちは、あなたはこれに対する答えを見つけましたか?ありがとう。 – teapeng

+2

いいえ、これまでサポートされているものはないと思います。私は古いコードと証明書を今のところ使い続けています。彼らは将来この機能を追加することを願っています –

答えて

0

ここにいます:

private string GetToken() 
{ 
    var algorithm = "ES256"; 
    var teamID = "teamID"; 
    var apnsKeyID = "apnsKeyID"; 
    var apnsAuthKeyPath = @"apnsAuthKeyPath"; 
    var epochNow = DateTimeOffset.Now.ToUnixTimeSeconds(); 

    var header = new Dictionary<string, object>() 
    { 
     { "alg", algorithm }, 
     { "kid" , apnsKeyID } 
    }; 
    var payload = new Dictionary<string, object>() 
    { 
     { "iss", teamID }, 
     { "iat", epochNow } 
    }; 

    var privateKey = GetPrivateKey(apnsAuthKeyPath); 
    var token = Jose.JWT.Encode(payload, privateKey, algorithm: Jose.JwsAlgorithm.ES256, extraHeaders: header); 
    return token; 
} 
private CngKey GetPrivateKey(string apnsAuthKey) 
{ 
    using (var reader = File.OpenText(apnsAuthKey)) 
    { 
     var ecPrivateKeyParameters = (ECPrivateKeyParameters)new PemReader(reader).ReadObject(); 
     var x = ecPrivateKeyParameters.Parameters.G.AffineXCoord.GetEncoded(); 
     var y = ecPrivateKeyParameters.Parameters.G.AffineYCoord.GetEncoded(); 
     var d = ecPrivateKeyParameters.D.ToByteArrayUnsigned(); 
     return EccKey.New(x, y, d); 
    } 
} 

その後、あなたは、単にのAPNでメソッドを送信呼び出すことができます。

関連する問題