Использует ли pushsharp поддерживает новый подход Apple для отправки APN с использованием аутентификации Apple Push Notification Ключ (срок действия которого не ограничен) вместо сертификатов? Есть ли способ использовать его с pushsharp? Если нет, есть ли другая библиотека С# для ее поддержки?
Поддержка Pushsharp ключа аутентификации Apple Push Notification Key
comment
Привет, могу я узнать, нашел ли ты ответ на этот вопрос? Спасибо.
- person TPG   schedule 14.03.2017
comment
Нет. Я думаю, пока ничего не поддерживается. Пока я просто продолжаю использовать старый код и сертификаты. Надеюсь, они добавят эту возможность в будущем
- person Mike Keskinov   schedule 15.03.2017
Ответы (1)
вот ты где:
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);
}
}
тогда вы можете просто вызвать метод отправки в apns.
person
Mohammad
schedule
07.12.2017