-3

シナリオ

私は、通話に SMS を使用する特別な種類の API に取り組んでいます。
ここで、ユーザーは 9888888888 などのゲートウェイに SMS を送信 ます。これで、ゲートウェイ サーバーはアプリの API (この場合は私のアプリ) にこの形式で接続します
<APP NAME> <PARAMETERS>

http://myapi.com/myapp/api.php?mobileNo=912345678&userInput=<PARAMETERS>

問題

ユーザーが初めての場合は、ウェルカム メッセージを表示して、1 > 登録 2 > ヘルプ 3 > 何かなどのオプションを尋ねます。1彼がまたは2またはと返信したとします3。ゲートウェイは次のようなリクエストを送信します
http://myapi.com/myapp/api.php?mobileNo=912345678&userInput=1
。これは、ユーザーが登録したいことを意味しますが、サーバーにそのように伝えるにはどうすればよいでしょうか。ここでは、登録ページを毎回表示するようにコーディングするだけで簡単になります$_GET['userInput']==1。しかし、アプリの他の部分を使用すると問題が発生します。ユーザーが特定の仕事をしたい場合は、1 と返信するように求めている場合と同様です。この場合、サーバーは登録するか、そのジョブを実行するかをどのように判断しますか?

パラメーターが 1 つしか渡されていない場合、ユーザーが何を望んでいるのかをどのように判断するのでしょうか。たとえば、ユーザーが何かを挿入したいときに 1 と返信するページと、私に連絡したいときにユーザーが 1 と返信するページの 2 つのページがあります。

4

1 に答える 1

0

データベースベースのセッションを使用して、ユーザーがプロセスのどこにいるかを追跡します。たとえば、次の表を考えてみましょう。

CREATE TABLE `mobile_session` (
`mobile_number` VARCHAR(10) NOT NULL PRIMARY KEY,
`stage` TINYINT(2) NOT NULL
);

ユーザーからの入力の可能な各グループには、内部識別子が割り当てられます。たとえば、登録ページは 1、連絡先ページは 2 などです。ユーザーが連絡するたびに、携帯電話番号と入力のグループでデータベースを更新します。戻ってくることを期待しています。たとえば、1 が登録ページの場合。

REPLACE INTO `mobile_session` VALUES ([[users phone number]], '1');

次に、次のようなリクエストを受け取った場合:

http://myapi.com/myapp/api.php?mobileNo=912345678&userInput=1

表でその電話番号を調べて、そのユーザーが返信している入力のグループを確認できます。この場合、ユーザーが登録ページに返信していることがわかります。

于 2013-06-21T14:43:18.753 に答える