Я хочу хранить данные в пожарном депо через вызовы rest api. Я уже проанализировал gccredentials json-файл учетной записи службы, который вы можете загрузить. Я также присвоил токену
https://www.googleapis.com/auth/datastore
Когда я передаю токен в заголовок запроса авторизации и отправляю запрос на
https://firestore.googleapis.com/v1/projects/...
Я получаю только 401 - Запрос имеет неверные учетные данные для аутентификации. Ожидаемый токен доступа OAuth 2, файл cookie для входа или другие действительные учетные данные для аутентификации ...
Я попытался получить токен от
https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyCustomToken?key=abcde
и передать его вместо сгенерированного пользовательского токена. Это тоже не работает.
Получение идентификатора токена (GetFirebaseToken возвращает пользовательский токен из учетной записи службы json).
var token = string.Empty;
using(var http = new HttpClient())
{
var res = await
http.PostAsJsonAsync("https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyCustomToken?key=abcde", new { token = await
GetFirebaseToken("api", new Dictionary<string, object>()) });
var content = await res.Content.ReadAsStringAsync();
var obj = JObject.Parse(content);
token = obj["idToken"].Value<string>();
}
пытается залатать документ
using(var http = new HttpClient())
{
var content = new
StringContent(JsonConvert.SerializeObject(appointment));
http.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}");
var res = await
http.PatchAsync("https://firestore.googleapis.com/v1/projects/myproject/databases/(default)/documents/appointments/" + appointment.Id,
content);
Console.WriteLine(await res.Content.ReadAsStringAsync());
}
Как я могу получить действительный токен от остальных конечных точек для доступа к API Firestore?