У меня есть скрипт ac #, который выполняет вызов API отчетов Google Analytics. Когда я передаю ключ API в качестве части URL-адреса, я получаю следующую ошибку:
{"error": {"errors": [{"domain": "global", "reason": "обязательно", "сообщение": "Требуется вход в систему", "locationType": "заголовок", "местоположение": "Авторизация"}], "код": 401, "сообщение": "Требуется вход в систему"}}
В результате некоторых исследований stackoverflow мне сказали, что Google Analytics не аутентифицируется с помощью API-ключей в URL. Так есть ли способ, которым я могу запросить токен перед отправкой моего запроса API?
Это мой код ниже:
static string baseURL="https://www.googleapis.com/analytics/v3/data/ga";
static string ReportParam="?ids=ga%3A19809796&start-date=2019-10-25&end-date=2019-11-02&metrics=ga%3Ausers&dimensions=ga%3Adate&key=AIzablahblahblahblahblah7xs"; //modified the address here for security purpose
static string apiURL=baseURL+ReportParam;
static string result;
public void Main()
{
MakeCall();
MessageBox.Show(result.toString());
}
private static void MakeCall()
{
try
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(apiURL);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = client.GetAsync(apiURL).Result;
if (response.IsSuccessStatusCode)
{
result = response.Content.ReadAsStringAsync().Result;
}
else
{
Console.Write("Error: " + response.StatusCode + " " + response.ReasonPhrase);
}
client.Dispose();
}
catch(Exception ex)
{
Console.Write(ex.toString());
}
}
Любая помощь или предложения о том, как пройти аутентификацию черезHttpClient? Я отключил ключ API для токена авторизации в URL, и он работал, но токен авторизации работает только в течение 60 минут. Можно ли использовать токен обновления для запроса нового токена через код?