В моей компании есть планировщик заданий, который выполняет несколько фоновых заданий. У меня есть служба push-уведомлений Firebase, которой управляет этот планировщик заданий. Недавно нам пришлось перейти с устаревших API FCM на HTTP v1. Я успешно завершил миграцию, но позже понял, что планировщик заданий использует более старые версии Google.Apis, Google.Apis.Auth и Google.Apis.Core (1.14.1.0). Однако я использовал последнюю версию (1.68.0.0), которая несовместима с планировщиком заданий. В настоящее время компания не разрешает обновления планировщика заданий. Моя проблема связана со следующим методом, создающим токен.
Код: Выделить всё
public async Task GetAccessTokenAsync()
{
GoogleCredential credential;
var assembly = Assembly.GetExecutingAssembly();
var resourceName = "Peo.Mobile.Resources.firebase_json.json";
using (Stream stream = assembly.GetManifestResourceStream(resourceName))
{
if (stream == null)
{
await WriteLogAsync("Embedded resource not found.");
return null;
}
credential = GoogleCredential.FromStream(stream)
.CreateScoped("https://www.googleapis.com/auth/firebase.messaging");
}
var accessToken = await credential.UnderlyingCredential.GetAccessTokenForRequestAsync();
return accessToken;
}
В более старых версиях этот
UnderlyingCredential отсутствует. Я не знаю, как создать токен из более старых версий.
Подробнее здесь:
https://stackoverflow.com/questions/790 ... n-1-14-1-0