2016-04-06 1 views
2

Je tente d'incorporer Twilio dans mon application qui s'exécute sur mon serveur d'analyse déployé avec Heroku et MongoLab. Je suis en train de configurer en utilisant ce code dans mon fichier nuage/main.jsComment configurer Twilio sur un serveur d'analyse?

var twilio = require("twilio"); 
twilio.initialize("87se46bovanw4v5aiwy4o57","ia8o57awyov57yn875vyboe"); 


Parse.Cloud.define("inviteWithTwilio", function(request, response) { 
// Use the Twilio Cloud Module to send an SMS 
twilio.sendSMS({ 
    From: "6543211234", 
    To: 8065456703, 
    Body: "Start using Parse and Twilio!" 
    }, { 
success: function(httpResponse) { response.success("SMS sent!"); }, 
error: function(httpResponse) { response.error("Uh oh, something went wrong"); } 
    }); 
}); 

cependant, je reçois cette réponse

UserInfo={NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.} [NSDebugDescription: JSON text did not start with array or object and option to allow fragments not set.] 

J'ai déterminé que le problème réside dans les deux premières lignes lorsque essayant d'initialiser Twilio. Je suppose que c'est parce que le Twilio Cloud Module n'est pas intégré dans mon serveur d'analyse comme c'était le cas avec le code cloud Parse Hosted, mais je ne suis pas sûr. Comment puis-je résoudre ce problème? Merci pour votre temps.

+0

Avez-vous installé le module Twilio dans votre application? 'npm installe twilio --save'. De plus, le bug que vous montrez ressemble à iOS, avez-vous plus d'informations sur l'endroit où l'erreur se produit sur le serveur? – philnash

+0

Je reçois cette erreur chaque fois que quelque chose du côté du nuage est incorrect. Et je n'ai pas installé le module twilio, cependant, mon serveur est déployé via la version web de github avec heroku (je n'ai pas utilisé l'outil de ligne de commande). L'installation de ceci aura-t-elle un effet? –

Répondre

2

Twilio développeur évangéliste ici.

Il semble que, de notre conversation dans les commentaires, comme si vous n'aviez pas encore installé le Twilio npm module. Sur Parse, vous n'avez pas eu à installer le module tel qu'il était inclus par défaut. Pour utiliser le module Twilio à l'aide du serveur Parse, vous devez l'installer.

Pour installer le module, ouvrez votre application dans le terminal et le type:

$ npm install twilio --save 

Le drapeau --save est importante car elle permet d'économiser la dépendance à votre fichier package.json. Vérifiez la mise à jour package.json et déployez votre code à nouveau. Désormais, lors du déploiement sur Heroku, les modules npm, y compris le module Twilio, seront installés. Marin, qui a déjà répondu, a eu un bon point. Je recommande également d'utiliser twilio.sendMessage. Il utilise le nouveau et meilleur Messages resource (plutôt que la ressource SMS obsolète). Faites-moi savoir si cela aide du tout.

+0

Cela a résolu mon problème !! Merci beaucoup! –

+0

Hourra! J'espère que le reste de votre application se passe bien. – philnash

1

Je pense que c'est un problème pour la version Twilio.

vous devez utiliser twilio.sendMessage.

var twilio = require("twilio"); 
twilio.initialize("87se46bovanw4v5aiwy4o57","ia8o57awyov57yn875vyboe"); 


Parse.Cloud.define("inviteWithTwilio", function(request, response) { 
// Use the Twilio Cloud Module to send an SMS 
twilio.sendMessage({ 
    From: "6543211234", 
    To: 8065456703, 
    Body: "Start using Parse and Twilio!" 
    }, { 
success: function(httpResponse) { response.success("SMS sent!"); }, 
error: function(httpResponse) { response.error("Uh oh, something went wrong"); } 
    }); 
}); 

Nous espérons vous aider.

Merci

///////////////////////////////

Voici mon code beau travail .

Parse.Cloud.define("sendSMS", function(request, response) { 

    console.log(request); 
    var twilio = require("twilio")("ACCOUNT_SID","AUTH_TOKEN"); 

    twilio.sendMessage({ 

     to: request.params.number, 
     from: request.params.from, 
     body: request.params.message 

    }, function(err, responseData) { 

     if (err) { 
      response.error(err); 
     } else { 
      response.success("SMS sent."); 
     } 

    }); 

}); 
+0

J'ai essayé ça et c'est le même problème. Je me suis dit que ce n'était pas le problème parce que même si je n'appelle pas la fonction cloud, je reçois cette réponse. Cependant, si je commente les deux premières lignes, le serveur fonctionnera normalement. –

+0

J'ai édité ma réponse. Veuillez le vérifier à nouveau. –

+0

Votre code est-il dans le cloud/main.js sur un serveur d'analyse? –