Я хочу обновить ячейку Multi_Contact с помощью смарт-таблиц C # sdk или With и HTTP PUT-запроса через C #.
Я прочитал, что вы должны сделать HTTP-запрос для этого. Я сделал WebClient и отправил запросы, но я продолжаю получать неверный ответ. Я явно поражаю правильную цель, но я предполагаю, что у меня плохой заголовок или что-то в этом роде. (Любой отредактированный код записывается как ##) Куда я иду не так?
class APIHELPER
{
/// <summary>
///
/// </summary>
/// <param name="value"> value[i][0] is email . value[i][1] is name First Last. </param>
public static void SendMultiEmailPut(Int64 SheetID, Int64 columnID, Int64 rowID, List<List<string>> value)
{
HttpClient ApiClient = new HttpClient();
ApiClient.DefaultRequestHeaders.Accept.Clear();
ApiClient.BaseAddress = new Uri(@"https://api.smartsheet.com/2.0/sheets/"+ SheetID.ToString() + @"/rows");
ApiClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
ApiClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "#########"); //the authentication code is here
string myJsonRequest = @"[{""id"": " + rowID.ToString() + @", ""cells"": [ {""columnId"": "+columnID.ToString()+@",""objectValue"": {""objectType"": ""MULTI_CONTACT"",""values"": [";
List<string> LastElement = value.Last();
foreach (List<string> NE in value)
{
if (NE == LastElement)
{
myJsonRequest = myJsonRequest + @"{""objectType"": ""CONTACT"",""email"": """ + NE[0] + @""",""name"": """+ NE[1] +@"""}";
}
else
{
myJsonRequest = myJsonRequest + @"{""objectType"": ""CONTACT"",""email"": """ + NE[0] + @""",""name"": """ + NE[1] + @"""},";
}
}
myJsonRequest = myJsonRequest + @"] } }]}]";
var Response = ApiClient.PutAsJsonAsync(ApiClient.BaseAddress, myJsonRequest).Result;
}
}