Axios: Je ne peux pas faire de requête POST à ​​l'API paypal

Créé le 15 janv. 2017  ·  3Commentaires  ·  Source: axios/axios

Salut, mon problème est plus une question, j'essaie de faire en sorte que axios fasse une requête POST qui fasse la même chose que ce curl:

curl -v https://api.sandbox.paypal.com/v1/oauth2/token \
  -H "Accept: application/json" \
  -H "Accept-Language: en_US" \
  -u "EOJ2S-Z6OoN_le_KS1d75wsZ6y0SFdVsY9183IvxFyZp:EClusMEUk8e9ihI7ZdVLF5cZ6y0SFdVsY9183IvxFyZp" \
  -d "grant_type=client_credentials"

mon code est le suivant :

    var instance = axios.create({
        baseURL: 'https://api.sandbox.paypal.com/v1/oauth2/',
        timeout: 1000,
        method: 'post',
        headers: {
          'Accept': 'application/json',
          'Accept-Language': 'en_US',
          'content-type': 'application/x-www-form-urlencoded',
          'EOJ2S-Z6OoN_le_KS1d75wsZ6y0SFdVsY9183IvxFyZp':'EClusMEUk8e9ihI7ZdVLF5cZ6y0SFdVsY9183IvxFyZp'
        },
        data: {
          "grant_type": "client_credentials",
        },    
});

  instance.post('/token')
      .then(function(response){
        console.log(response.data); // ex.: { user: 'Your User'}
        console.log(response.status); // ex.: 200
      });

je l'appelle depuis mon hôte local, et cela me donne l'erreur 401. Ceci est le lien vers l'API PAYPAL https://developer.paypal.com/docs/integration/direct/make-your-first-call/

En lisant les documents, je n'ai pas pu comprendre où mettre le nom d'utilisateur et le mot de passe ou comment configurer l'autorisation de basicOuth
instance.defaults.headers.common['Authorization'] = AUTH_TOKEN;
qu'est-ce que AUTH_TOKEN ? est une const? quelle valeur dois-je lui donner ?

En tout cas merci d'avance.

Commentaire le plus utile

Je l'ai résolu ! J'ai fait un Gist pour montrer comment je l'ai résolu si quelqu'un a besoin d'aide : https://gist.github.com/TigaxMT/b57c11df3e4ebd0510858ec3df775efa

Tous les 3 commentaires

Vous devez vous authentifier avec un nom d'utilisateur et un mot de passe en utilisant l'authentification de base. De plus, vous envoyez JSON avec cette demande et la version curl utilise "application/x-www-form-urlencoded ". Veuillez lire la documentation :

@Spartano Vous avez résolu le problème ? J'essaie de faire la même chose et de me donner également un 401 et ce message "Échec de l'authentification en raison d'informations d'authentification non valides ou d'un en-tête d'autorisation manquant."

Mon code ici :

axios.post('https://api.sandbox.paypal.com/v1/oauth2/token', querystring.stringify({

    grant_type: 'client_credentials',

    withCredentials: true,

    headers:{

        'Accept': 'application/json',
        'Accept-Language': 'en_US',
        'Content-Type': 'application/x-www-form-urlencoded',
    },

    auth: {

        username: 'ClientID',
                password: 'Secret'
    }


})).then((response) => {

    console.log(response);

}).catch((err) => {console.log(err);});

Je l'ai résolu ! J'ai fait un Gist pour montrer comment je l'ai résolu si quelqu'un a besoin d'aide : https://gist.github.com/TigaxMT/b57c11df3e4ebd0510858ec3df775efa

Cette page vous a été utile?
0 / 5 - 0 notes