Twilio API / TWIML 当用户回复我的文本(通过文本)并且我收到他们对我的终点的回答时,我该如何识别发件人?
起初我认为这将是'sid',但事实并非如此......我找不到'conversation_id',它存在于'发送'和'响应'中,可以提醒我的终点是谁发件人是。
当我从服务器发送文本时,响应如下:
{ sid: 'MMf9...',
date_created: 'Thu, 18 Aug 2016 03:24:50 +0000',
date_updated: 'Thu, 18 Aug 2016 03:24:50 +0000',
date_sent: null,
account_sid: '...',
to: '...,
from: '...',
messaging_service_sid: '...',
body: 'Hi. this is an anonymous text from my server',
status: 'accepted',
num_segments: '1',
num_media: '1',
direction: 'outbound-api',
api_version: '2010-04-01',
price: null,
price_unit: null,
error_code: null,
error_message: null,
uri: '/2010-04-01/Accounts/...../Messages/......json',
subresource_uris: { media: '/2010-04-01/Accounts/...../Messages/...../Media.json' },
dateCreated: Thu Aug 18 2016 03:24:50 GMT+0000 (UTC),
dateUpdated: Thu Aug 18 2016 03:24:50 GMT+0000 (UTC),
dateSent: null,
accountSid: '....',
messagingServiceSid: '.....',
numSegments: '1',
numMedia: '1',
apiVersion: '2010-04-01',
priceUnit: null,
errorCode: null,
errorMessage: null,
subresourceUris: { media: '/2010-04-01/Accounts/..../Messages/..../Media.json' } }
当我用手机中的文字回复到我的服务器时,我的终点会收到......
{
"ToCountry": "US",
"ToState": "IL",
"SmsMessageSid": "SMe....",
"NumMedia": "0",
"ToCity": "Chicago",
"FromZip": "60626",
"SmsSid": "SMe....",
"FromState": "IL",
"SmsStatus": "received",
"FromCity": "CHICAGO",
"Body": "Try",
"FromCountry": "US",
"To": "....",
"MessagingServiceSid": "....",
"ToZip": "",
"NumSegments": "1",
"MessageSid": "SMe...",
"AccountSid": "...",
"From": "...",
"ApiVersion": "2010-04-01"
}
你可以看到原始短信中的sid以MMf9开头......我手机响应中的所有ID都以SMe开头......
我希望在发送和响应中有一些会话ID,因此在我的终点,我可以为会话创建一个数据库条目,并存储我的用户对话的响应。但是现在因为发送者和发送者之间没有对话。接收器,我不知道在哪里存储对话,我不知道我的服务器是谁发送响应。
答案 0 :(得分:1)
因为我得到了' twilio元数据中的电话号码,这是识别用户的一种方式。
由于Twilio确实允许您添加自定义'元数据'对于文本消息,用户需要在文本消息本身中用额外的文本进行响应以识别对话,例如:
'约翰,你认为获胜者应该是:A,B还是C?将您的选民ID添加到回复中:43z'
然后用户需要回复文字:B 43z。
你的终点会识别答案' B'和''将被访者确定为约翰' (假设您在服务器上有一个数据库查找映射John到43z。)
然后,您可以获得获胜者应该是谁的总数,并且还知道每个用户对该对话的回复。