Ga naar inhoud
  • 0

cUrl --data / json vraag


andre65

Vraag

Beste Lezers,

Hoe krijg onderstaande in FileMaker, met name het --data gedeelte (stukje json), werkend.
Wat ik ook doe, het lukt me niet en voorbeelden op het internet kan ik niet vinden?
Ook met Postman krijg ik dit niet voor elkaar. Veel wel, maar die --data regel wil mij niet lukken!

Met vriendelijke groet,

André

https://apidocs.klaviyo.com/reference/lists-segments#add-members

curl --request POST \
     --url 'https://a.klaviyo.com/api/v2/list/LIST_ID/members?api_key=PRIVATE_KEY' \
     --header 'Accept: application/json' \
     --header 'Content-Type: application/json' \
     --data '
{
     "profiles": [
          {
               "email": "george.washington@klaviyo.com"
          },
          {
               "phone_number": "+13239169023"
          }
     ]
}
'

 

 

Link naar reactie

5 antwoorden op deze vraag

Aanbevolen berichten

  • 0
7 hours ago, andre65 said:

Ook met Postman krijg ik dit niet voor elkaar. Veel wel, maar die --data regel wil mij niet lukken!

Dit is een wel erg ruime definitie van wat je wél voor elkaar krijgt. Heb je een geldige LIST_ID en heb je een PRIVATE_KEY en zo ja, wat heb je daar mee kunnen opvragen? 

Je zal namelijk eerst vast moeten stellen of je toegang werkt en of het object waar je iets aan wil toevoegen ook bestaat.

Verder zou ik je willen aanraden om  de documentatie en met name notitie#4 bij -d/--data in de cURL Options sectie van de FileMaker help te lezen.

Link naar reactie
  • 0

Menno,

Ik heb een list_id en private_key ... voorbeeld was zoals Klaviyo deze op de website heeft staan.
Inmiddels heb ik het wel werkend in Postman, met behulp van Sjaak.
 

curl --request POST 'https://a.klaviyo.com/api/v2/list/YgNfut/members?api_key=pk_94f6xxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
     "profiles": [
          {
               "email": "mijn@emailadres.com"
          }
     ]
}'

Alleen nu nog in FileMaker... :-( altijd een gevecht (voor mij)

 

"https://a.klaviyo.com/api/v2/list/" & $list & "/members?api_key=" & $$api_key

en de curl

"-X POST  \
-H 'Content-Type: application/json' \
-d  '{
	\"profiles\" : 
	[
		{
			\"email\" : \"mijn@emailadres.com\"
		}
	]
}'"

Variabelen worden netjes ingevuld. De URL is wel goed.

Het resultaat wat ik terug krijg is :

{
	"detail" : "profiles is a required parameter."
}

Wat ik ook doe met bv. quote( "profiles" ) of alle spaties eruit halen....  wat voor notatie dan ook , het lukt me niet.
 

Link naar reactie
  • 0

Om te beginnen: FileMaker kan niks met apostrofs ('), daarvoor moet je quotes (") gebruiken. Verder moet je de payloads niet in de curloptions zetten maar via een variable in de curloptions zetten (dat is waarover de note4 in de documentatie gaat).

De variabelen worden dan:

Let ( [ 
	$url = "https://a.klaviyo.com/api/v2/list/" & $list & "/members?api_key=" & $$api_key ; 
	$curloptions = "-X POST -H \"Content-Type: application/json\" -d @$payload" ; 
	$payload = JSONSetElement ( "" ; [ "profiles.email" ; "mijn@emailadres.com" ; JSONString ] )
] ; 
	"" 
)

 

Link naar reactie
  • 0

Dat is een array en jouw json wordt dan gemaakt met:

JSONSetElement ( "" ; 
	[ "api_key" ; "PRIVATE_KEY" ; JSONString ] ; 
	[ "emails[0]" ; "mijn@emailadres.com" ; JSONString ] ; 
	[ "emails[1]" ; "zijn@emailadres.com" ; JSONString ] )

Het hoe en waarom kan je nalezen in: https://help.claris.com/nl/pro-help/content/jsonsetelement.html?Highlight=JSONSetElement en voorbeeld#3 toont je dan hoe je een array kunt samenstellen. RTFM 🤔

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...