-3

设想

我正在研究一种使用短信进行呼叫的特殊 API。
在这里,用户向
<APP NAME> <PARAMETERS>
网关发送短信,比如9888888888。现在网关服务器以这种格式联系应用程序的 API(在本例中是我的应用程序)
http://myapi.com/myapp/api.php?mobileNo=912345678&userInput=<PARAMETERS>

问题

当用户是新用户时,我向他显示欢迎信息并询问他选项,例如 1> 注册 2> 帮助 3> 某事。假设他回复1or23。网关会向我发送一个像
http://myapi.com/myapp/api.php?mobileNo=912345678&userInput=1
现在这样的请求,这意味着用户想要注册,但我将如何告诉服务器。这里很简单,只需对注册页面进行编码以每次都显示$_GET['userInput']==1,依此类推。但是当您使用应用程序的其他部分时,问题就出现了。就像我要求用户在他想做某项工作时回复 1 一样。在这种情况下,服务器将如何判断注册或完成该工作?

当我只有一个参数传递给我时,我将如何判断用户想要什么。例如,我有两个页面,一个用户回复 1,他想插入一些东西,另一个页面用户回复 1,当他想联系我时。

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 回答