Google Sheets OAuth2Request - Неверный запрос в формах Xamarin - PullRequest
0 голосов
/ 05 марта 2020

Поскольку Google Sheets Api не поддерживает Xamarin, я пытаюсь построить запрос, используя Xamarin.Auth.OAuth2Request.

Следующий код представляет, как выглядит запрос:

Dictionary<string, string> value = new Dictionary<string, string> { { "range", "Arkusz1!A1:B1" },{ "values", "[Test,123]" }};

var request = new OAuth2Request("POST", new Uri("https://sheets.googleapis.com/v4/spreadsheets/13FC0GZPbFbbOk8MW3N4fRvYq3lNKNZqsQdRsi0uVmgQ/values/Arkusz1!A1:B1:append?valueInputOption=RAW"), value, GoogleAccount);
var response = request.GetResponseAsync().Result;

GoogleAccount - это объект учетной записи, который был создан во время входа в систему.

К сожалению, я получаю ответ: " Неверный запрос ": Снимок экрана отладчика

Я думаю, что проблема в третьем параметре OAuth2Request (параметры IDictionary), но я не знаю, как это проверить. Как я могу получить больше информации, что вызвало этот ответ?

1 Ответ

0 голосов
/ 06 марта 2020

Я пробовал каждый метод для передачи параметров в OAuth2Request, но он по-прежнему не хочет сотрудничать. Наконец, для обработки моего запроса я использовал HttpClient и HttpContent .

Следующий код представляет мой окончательный рабочий алгоритм:

//Initialize HttpClient instance
HttpClient client = new HttpClient();

//Dictionary whose contents correlates to body of request
Dictionary<string, List<string[]>> values = new Dictionary<string, List<string[]>>();
values.Add("values",new List<string[]>() { new string[] { "Test", "123" } });

//Serialize Dictionary to JSON
var json = JsonConvert.SerializeObject(values);

//Create StringContent which is based on JSON
var content = new StringContent(json, Encoding.UTF8, "application/json");

//Add authentication header. It can be taken from Account object
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer",GoogleAccount.Properties["access_token"]);

//Call Post Request with our new content. Run it asynchronously or not.
var output = client.PostAsync(new Uri(@"https://sheets.googleapis.com/v4/spreadsheets/13FC0GZPbFbbOk8MW3N4fRvYq3lNKNZqsQdRsi0uVmgQ/values/Arkusz1!A1:B1:append?valueInputOption=RAW"), content).Result;

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