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"
}

ご覧のとおり、元の SMS の sid は MMf9 で始まります...そして私の電話の応答のすべての ID は SMe で始まります...

エンドポイントで会話のデータベースエントリを作成し、会話からのユーザーの応答を保存できるように、送信と応答の会話IDがそこにあることを望んでいました。しかし、送信者と受信者の間にconversation_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 に答える