C # Сообщение об ошибке API Google Analytics 401, требуется вход в систему - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть скрипт 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 минут. Можно ли использовать токен обновления для запроса нового токена через код?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...