Jump to content
  • 0

cUrl --data / json vraag


andre65

Question

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 to comment

5 answers to this question

Recommended Posts

  • 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 to comment
  • 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 to comment
  • 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 to comment
  • 0

Menno,

T's gelukt .... ;-) Veel dank daarvoor.
Maar toch nog een dingetje :-) 

     --data '
{
     "api_key": "PRIVATE_KEY",
     "emails": [
          "mijn@emailadres.com",
          "zijn@emailadres.com"
     ]
}'

Ben nog aan het stoeien met de [  ]. 

André

Link to comment
  • 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 to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...