Trying to upload dependent tags with powershell, almost there...

So I am following up on a prior post 'Powershell to update tags using API’ that looks like it ended with the user abandoning uploading a tag file, instead they embedded their independent tags into the json.
Using the code in their post below.....
.....................................................................
[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"
Add-Type -AssemblyName System.Web
$ptruserID = "......."
$ptrusersec = "......."
$PolicyID = "......."
$dependency = $true
$glCodes =$false
$header = $true
$setRequired=$true
$json = [ordered]@{
"type"="update";
"credentials"=@{
"partnerUserID"=$ptruserID;
"partnerUserSecret"=$ptrusersec
};
"inputSettings"=@{
"type"="policy";
"policyIDList"=@($PolicyID)
};
"tags"=@{
"action"="replace";
"source"="file";
"config"=@{
"dependency"=$dependency;
"glCodes"=$glCodes;
"header"=$header;
"setRequired"=$setRequired;
"fileType"="csv"
};
};
} | ConvertTo-Json
$url = "https://integrations.expensify.com/Integration-Server/ExpensifyIntegrations"
$request = "requestJobDescription="
$file = Get-Item -Path C:\users\repetto\ExpensifyTags.csv
#$file = Import-CSV -Path C:\users\repetto\ExpensifyTags.csv
$encode = [System.Web.HttpUtility]::UrlEncode($file)
$body = $request + $json + "'&file='$encode"
Invoke-Webrequest -uri $url -body $body -Method Post
.......................................................
I get this result............
SatusCode : 200
StatusDescription : OK
Content : {"responseMessage":"Could not split the file on multiple lines. The file probably does not have proper End Of Line characters.","responseCode":666}
RawContent : HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: OPTIONS, GET, POST
Strict-Transport-Security: max-age=31536000;
Content-Length: 147
Content-Type: text/plain;charset=u...
Forms : {}
Headers : {[Access-Control-Allow-Origin, *], [Access-Control-Allow-Methods, OPTIONS, GET, POST], [Strict-Transport-Security, max-age=31536000;], [Content-Length, 147]...}
Images : {}
InputFields : {}
Links : {}
ParsedHtml : mshtml.HTMLDocumentClass
RawContentLength : 147
...................................................................
I verified that my csv ends each line with a crlf.
Here are the contents of the key variables:
PS C:\Users\Repetto> $file
Directory: C:\users\repetto
Mode LastWriteTime Length Name
-a---- 2/11/2020 10:10 AM 362446 ExpensifyTags.csv
~~~~~~~~~~~~~
PS C:\Users\Repetto> $encode
C%3a%5cusers%5crepetto%5cExpensifyTags.csv
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PS C:\Users\Repetto> $body
requestJobDescription={
"type": "update",
"credentials": {
"partnerUserID": "…….",
"partnerUserSecret": "……."
},
"inputSettings": {
"type": "policy",
"policyIDList": ["……."]
},
"tags": {
"config": {
"setRequired": true,
"glCodes": false,
"header": true,
"dependency": true,
"fileType": "csv"
},
"source": "file",
"action": "replace"
}
}'&file='C%3a%5cusers%5crepetto%5cExpensifyTags.csv
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Can anyone help me understand this error and how to fix?
Thanks
Answers
-
April Bekkala Expensify Customer, Expensify Team, Expensify Student Ambassador Posts: 117 Expensify Team
Hi @ComportTom,
I see that this was also discussed in another community thread - there you will find the conversation in whole as well as a response from our own Francois just yesterday!