AppScript - AppSheet API Post Issues

1.2k views Asked by At

I'm attempting to send a row to an appsheet app with their provided API. I have it all set up in app script and I'm getting a code 200 (success) but it's not adding the data to the spreadsheet. Am I doing something wrong?

function testingAPI(){
  let appId = APP ID HERE
  var url = `https://api.appsheet.com/api/v2/apps/${appId}/tables/opportunity/Action`;
  var options = {
      "method": "post",
      "headers": {
          "applicationAccessKey": ACCESS KEY HERE
      },
      "httpBody": {
  "Action": "Add",
  "Properties": {
    "Locale": "en-US",
    "Location": "47.623098, -122.330184",
    "Timezone": "Pacific Standard Time",
    "UserSettings": {
      "Option 1": "value1",
      "Option 2": "value2"
    }
  },
  "Rows": [
    {
      "IntentionSetID": "1H3t8Dt",
      "AgentID": "11234",
      "ActivityID": 12,
      "taskComplete": true,
      "taskVerified": false,
      "task_verified_by": "",
      "proof": "https://drive.google.com/open?id=1CpzebeLtAljqHTsFHvVCCDFc-A6aXC3O",
      "agent_expected_part_detail": "",
      "poc_expected_part_detail": '',
      "assigned_point_value": '',
      "points_assigned_by": "10/31/2014",
      "actual_part_detail": "8:15:25",
      "verification_date": "18:30:33"
    }
  ]
} 
  };
  var response = UrlFetchApp.fetch(url, options);
  console.log(response.getResponseCode())
}

I was able to find that the API call is indeed going through, but it's saying the "Action" is missing:

 {
  "RestAPIVersion": 2,
  "TableName": "opportunity",
  "AppTemplateVersion": "1.000247",
  "Errors": "'Action' is missing.",
  "AppTemplateName": "e280cf5a-e2de-4d24-89d3-95d384a2c044",
  "Operation": "REST API invoke",
  "RecordType": "Stop",
  "Result": "Success",
  "ResultSuccess": true,
  "StatusCode": "OK"
}

changing httpBody to payload got me a step further, so now it's recognizing the "add" aspect, but it's still not understanding the properties correctly. it's showing a bunch of escape characters.

REST API:
{
  "Action": "Add",
  "Properties": {},
  "Rows": []
}

Properties:
 {
  "RestAPIVersion": 2,
  "TableName": "opportunity",
  "AppTemplateVersion": "1.000250",
  "Action": "Add",
  "Errors": "API 'Properties' does not have unexpected Type of 'JObject'. Value is: '{\r\n  \"Action\": \"Add\",\r\n  \"Properties\": \"{Timezone=Pacific Standard Time, Location=47.623098, -122.330184, Locale=en-US}\",\r\n  \"Rows\": \"[Ljava.lang.Object;@489763c2\"\r\n}'",
  "AppTemplateName": "e280cf5a-e2de-4d24-89d3-95d384a2c044",
  "Operation": "REST API invoke",
  "RecordType": "Start",
  "Result": "Failure"
}
1

There are 1 answers

0
Wicket On

The AppSheets API POST https://api.appsheet.com/api/v2/apps/{appId}/tables/{tableName}/Action can be used to invoke an action. This means that the action should be created in AppSheet before it can be called.

Resources