2015-09-20 35 views
3

我正在编写一个Twilio + Parse应用程序,它可以让用户通过短信分享他们的联系信息。我有一个样品了Vcard和在JavaScript字符串:生成VCard并通过Twilio发送

message = ''; 
    message += 'BEGIN:VCARD'; 
    message += 'BDAY;VALUE=DATE:1963-09-21'; 
    message += 'VERSION:3.0'; 
    message += 'N:Stenerson;Derik'; 
    message += 'FN:Derik Stenerson'; 
    message += 'ORG:Microsoft Corporation'; 
    message += 'ADR;TYPE=WORK,POSTAL,PARCEL:;;One Microsoft Way;Redmond;WA;98052-6399;USA'; 
    message += 'TEL;TYPE=WORK,MSG:+1-425-936-5522'; 
    message += 'TEL;TYPE=WORK,FAX:+1-425-936-7329'; 
    message += 'EMAIL;TYPE=INTERNET:[email protected]'; 
    message += 'END:VCARD'; 
    message += 'BEGIN:VCARD'; 
    message += 'VERSION:3.0'; 
    message += 'N:Ganguly;Anik'; 
    message += 'FN:Anik Ganguly'; 
    message += 'ORG: Open Text Inc.'; 
    message += 'ADR;TYPE=WORK,POSTAL,PARCEL:;Suite 101;38777 West Six Mile Road;Livonia;MI;48152;USA'; 
    message += 'TEL;TYPE=WORK,MSG:+1-734-542-5955'; 
    message += 'EMAIL;TYPE=INTERNET:[email protected]'; 
    message += 'END:VCARD'; 
    message += 'BEGIN:VCARD'; 
    message += 'VERSION:3.0'; 
    message += 'N:Moskowitz;Robert'; 
    message += 'FN:Robert Moskowitz'; 
    message += 'EMAIL;TYPE=INTERNET:[email protected]'; 
    message += 'END:VCARD'; 

,我试图找出如何让手机检测到它,而不是文本的这是一个电子名片发送到电话号码。

我有一个方法:

function respondWithMessage(message, response) { 
    response.set('Content-Type', 'text/xml'); 
    var xmlVersion = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n'; 
    message = '<Message>\n' + message + '\n</Message>'; 
    message = '<Response>\n' + message + '\n</Response>'; 
    message = xmlVersion + message; 
    response.send(message); 
} 

随着这我能发短信。 在他们的文档中,Twilio声明在这里支持文本/电子名片信息: https://www.twilio.com/docs/api/rest/accepted-mime-types 但是我一直无法让它正常工作。 你能提供一个如何通过Twilio发送这个VCard的例子吗? 谢谢!

+0

你是不是想用电子名片回应,或者只是把它?因为你无法用TwiML包装电子名片,这就是你想要做的事情。你能否提供更多信息? –

+0

我试图从存储在我的服务器上的用户的联系信息生成一个vCard,并通过短信发送给另一个用户。 – AttilaTheFun

回答

4

Twilio开发者传道这里。如果你想开始一条新消息,那么你不需要使用TwiML,但可以简单地使用其余的API从服务器发送信息。

随着Parse.com它应该是这样的:

// Require and initialize the Twilio module with your credentials 
var client = require('twilio')('ACCOUNT_SID', 'AUTH_TOKEN'); 

// Send an SMS message 
client.sendSms({ 
    to:'to', 
    from: 'from', 
    body: 'Hello world!', 
    mediaUrl: your-vcard-url 
    }, function(err, responseData) { 
    if (err) { 
     console.log(err); 
    } else { 
     console.log(responseData.from); 
     console.log(responseData.body); 
    } 
    } 
); 

所以你现在要做的,就是确保your-vcard-url' is accessible by Twilio, and that its mime type is set to be文/ vcard`。

换句话说,你不能仅仅通过发送文本信息的电子名片的内容,但需要告诉Twilio在虚拟卡实际上是,所以它包括它的消息中。

vcard的有效URL示例为this one。希望这可以帮助你

+0

我正在尝试使用上面描述的方法,但我注意到Twilio发送的Twardio URL中的VCard链接,而不是在消息中看起来原生的VCard。我正在iOS上进行测试。 – johnnymire