0

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,以便在我的端点上,我可以为对话创建一个数据库条目,并存储我的用户从对话中的响应。但是现在由于发送者和接收者之间没有对话 ID,我不知道在哪里存储对话,也不知道我的服务器正在向谁发送响应。

4

1 回答 1

1

因为我在 twilio 元数据中获得了“收件人”电话号码,所以这是一种识别用户的方式。

由于 Twilio 确实允许您向文本消息添加自定义“元数据”,因此用户需要在文本消息本身中使用额外文本进行响应以识别“对话”,例如:

“约翰,你认为获胜者应该是:A、B还是C?将您的选民 ID 添加到响应中:43z'

然后用户需要回短信:B 43z。

您的端点将识别答案“B”,而“43z”会将受访者识别为“John”(假设您有一个数据库查找将 John 映射到您的服务器上的 43z)。

然后,您可以获得获胜者的总数,并且还可以知道每个用户对对话的反应。

于 2016-08-18T04:08:08.320 回答