2015-10-20 1 views
0

J'essaie d'envoyer des données de NetSuite à ZenDesk via l'API ZenDesk. Le problème est, je ne peux pas l'obtenir pour authentifier en plaçant l'authentification dans l'en-tête. Quelqu'un at-il vu des articles sur le faire de cette façon? J'ai essayé de l'ajouter en tant que {email}: {mot de passe} et {email}/token: {token} sans chance.L'appel de l'API ZenDesk ne fonctionne pas

J'ai testé le mot de passe et le jeton en utilisant curl. Donc, je sais que le mot de passe est correct. Des pensées sur celui-ci?

J'ai également essayé d'utiliser Postman pour créer l'authentification et cela a fonctionné aussi bien. Assez curieusement, cependant, je ne peux pas utiliser cette authentification dans une autre application. Je peux coller dans l'en-tête (dans Postman) sans problème, mais lorsque j'essaye de le faire via Advanced Rest Client (extension Chrome), cela ne fonctionnera pas et ne fonctionnera pas dans l'en-tête de NetSuite.

Je devine qu'il doit y avoir quelque chose qui me manque que Postman fait par lui-même.

Répondre

2

Généralement, vous devez fournir des informations d'identification en tant qu'en-tête, par ex. une requête GET comme:

var url = 'https://...'; 
var cred = 'username' +':'+ 'password'; 
var headers = { 
    'Content-Type' : 'application/json', 
    'Authorization' : nlapiEncrypt(cred, 'base64'); 
}; 
nlapiRequestURL(url, null, headers); 

NetSuite a une nouvelle méthode qui permet apparemment ceci: nlapiRequestURLWithCredentials mais je n'ai pas pris la peine figurer dehors depuis ce qui précède est bien testé et a travaillé avec plusieurs systèmes distants.

+0

Merci @bknights. Je ne sais pas pourquoi je ne pourrais jamais le faire fonctionner en écrivant les en-têtes comme en-tête ['Authorization'] = '...'. J'ai essayé votre chemin et (après avoir ajouté 'Basic' devant le nlapiEncrypt ça marche.) D'accord avec le commentaire sur nlapiRequestWithCredential ... Surtout avec le nouveau code qui sortira l'année prochaine ... Merci! – W3BGUY