3 votes

UPDATE : Comment envoyer des données Json en tant que requête POST dans Meteor en utilisant le package http

UPDATE : J'ai mis à jour mon code avec la réponse recommandée, et j'obtiens maintenant une erreur différente de celle que j'avais initialement, expliquée ci-dessous.

J'utilise Meteor js paquet http et j'essaie d'envoyer une requête POST à l'adresse suivante API de Constant Contact . J'essaie d'utiliser le data pour passer un objet JSON à stringifier et à utiliser comme corps de la requête HTTP. Je reçois une réponse d'erreur 400 de Constant Contact. En utilisant l'option Testeur API de Constant Contact J'ai réussi à obtenir une réponse 201 et à ajouter un contact. Le Json que j'ai ici est le même que celui que j'ai utilisé dans le testeur mais je reçois l'erreur suivante en retour.

{ [Error: failed [400] [{"error_key":"query.param.invalid","error_message":"The query parameter status is not supported."},{"error_key":"query.param.invalid","error_message":"The query parameter limit is not supported."}]]

Voici mon code ci-dessous.

var data = {
      "addresses": [
        {
          "address_type": "BUSINESS",
          "city": "Belleville",
          "country_code": "CA",
          "line1": "47 Shawmut Ave.",
          "line2": "Suite 404",
          "postal_code": "K8b 5W6",
          "state_code": "ON"
        }
      ],
      "lists": [
        {
          "id": "1395617465"
        }
      ],
      "cell_phone": "555-555-5555",
      "company_name": "System Optimzations",
      "confirmed": false,
      "email_addresses": [
        {
          "email_address": "username2@example.com"
        }
      ],
      "fax": "555-555-5555",
      "first_name": "Ronald",
      "home_phone": "555-555-5555",
      "job_title": "Systems Analyst 3",
      "last_name": "Martone",
      "prefix_name": "Mr.",
      "work_phone": "555-555-5555"
    };

   HTTP.post('https://api.constantcontact.com/v2/contacts?status=ALL&limit=50&api_key=<random-key>', {
      headers: {
        'Authorization': 'Bearer <random-token>',
        'Content-Type': 'application/json'
      },
      data: JSON.stringify(data)
    }, function (error, response) {
      if ( error ) {
        console.log( error );
      } else {
        console.log(response);

      }
    });

2voto

Atul Sharma Points 3221
var data = {
      "addresses": [
        {
          "address_type": "BUSINESS",
          "city": "Belleville",
          "country_code": "CA",
          "line1": "47 Shawmut Ave.",
          "line2": "Suite 404",
          "postal_code": "K8b 5W6",
          "state_code": "ON"
        }
      ],
      "lists": [
        {
          "id": "1395617465"
        }
      ],
      "cell_phone": "555-555-5555",
      "company_name": "System Optimzations",
      "confirmed": false,
      "email_addresses": [
        {
          "email_address": "username2@example.com"
        }
      ],
      "fax": "555-555-5555",
      "first_name": "Ronald",
      "home_phone": "555-555-5555",
      "job_title": "Systems Analyst 3",
      "last_name": "Martone",
      "prefix_name": "Mr.",
      "work_phone": "555-555-5555"
    };

Maintenant, convertissez l'objet en JSON en utilisant JSON.stringify et ajouter Content-Type en-tête.

HTTP.post('https://api.constantcontact.com/v2/contacts?action_by=ACTION_BY_OWNER&api_key=<api-key>',{
          headers:{
            'Authorization': 'Bearer <api-key>',
            'Content-Type': 'application/json'
          },
          data: JSON.stringify(data),
        function (error, response) {
          if ( error ) {
            console.log( error );
          } else {

              console.log(response);

          }
        });

2voto

Kosh Very Points 11111

L'url correcte pour le POST est
https://api.constantcontact.com/v2/contacts?action_by=ACTION_BY_OWNER&api_key=<api-key>

no

https://api.constantcontact.com/v2/contacts?status=ALL&limit=50&api_key=<random-key>

Veuillez consulter les documents ici : https://constantcontact.mashery.com/io-docs Méthodes de contact section.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X