twitter / twurl

OAuth-enabled curl for the Twitter API

Home Page:https://developer.twitter.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How do I post the json file using twurl?

selvipt opened this issue · comments

I am getting The JSON string format is invalid error, When I tried to add the tailored audience user via JSON file. When I tried using the actual payload and it was successful. Does the twurl support file upload? I am expecting something similar the curl has the support like [curl -vX POST http://server/api/v1/places.json -d @testplace.json
--header "Content-Type: application/json"]

URL:
twurl --header 'Content-Type: application/json' -X POST -H "https://ads-api.twitter.com" "/7/accounts/ddg12333/tailored_audiences/33444/users" -r "@/home/k/Downloads/2020-06-30_emails.json"

Response:
{
"errors": [
{
"code": "INVALID",
"message": "The JSON string format is invalid"
}
],
"request": [],
"operation_errors": []
}

The syntax here is not exactly the same as that used by curl (there's a good opportunity to improve the documentation here!).

As described in this forum post, you can try using a subshell to cat the file contents into your command using the -d option instead of -r

Trying something like

twurl --header 'Content-Type: application/json' -X POST -H "https://ads-api.twitter.com" "/7/accounts/ddg12333/tailored_audiences/33444/users" -d "$(/home/k/Downloads/2020-06-30_emails.json)"

@andypiper I tried the above command still getting the same error

Command:
twurl --header 'Content-Type: application/json' -X POST -H "https://ads-api.twitter.com" "/7/accounts/ddg12333/tailored_audiences/333444/users" -d "$(home/k/Downloads/2020-06-30-50K_emails.json)"

Response:
{"errors":[{"code":"INVALID","message":"The JSON string format is invalid"}],"request":[],"operation_errors":[]

I'm not sure it will work with a large file (if you have 50K emails there...) but I'm using zsh and was able to get the contents of a JSON file passed to the command using

-d "$(</home/myuser/file.json)"

If you add the -t option to the twurl command, can you see the contents of the file being picked up and passed to the command?