extrareality / api-helper
用于与Extrareality网站通信的辅助库
Requires
- php: >=5.4.0
README
如果您需要我们的API的先前版本,则它在此处描述此处。但我们不建议使用它,最好使用最新版本。因此,从该存储库中使用的API客户端代码也没有使用的意义,因为它是为旧版本API设计的。
Extrareality API v2
每个请求我们都发送一个参数
- datetime(例如 "2019-05-01 12:00:00")
- 签名
它基于我们仅知道的秘密密钥生成。根据它,您可以确信请求确实来自我们,但这不是必需的。
签名(signature)按以下方式生成
md5($datetime . $secret)
使用的参数
- datetime - 格式为 "Y-m-d H:i:s"(即 yyyy-mm-dd hh:mm:ss)
- secret - 我们共同的秘密 ;)
快速链接到方法描述
您必须提供我们两个网站上的URL,我们将在其中实现我们的API,并对其进行请求
时间表
方法:GET
您提供大约一个月的所有空档列表,但为每个空档添加一个包含数组的 "extraPrices" 字段。其中:键 - 条件,值 - 价格。
每个空档是一个包含以下属性的对象
- date(Y-m-d)
- time(H:i)
- is_free - (布尔值)true表示可用于预订。如果游戏时间已过或空档已被预订,则必须返回false。
- extraPrices(价格数组,其中键是条件,值是价格)。
您还可以传递给我们一些额外的参数,我们在预订时将返回这些参数(例如示例中的 our_time_id)。
示例
[
{
"date": "2016-05-05",
"time": "18:30",
"is_free": true,
"extraPrices": {
"2 человека": 80,
"Больше 2 человек": 110
},
"our_time_id": 321
},
{
"date": "2016-05-05",
"time": "20:00",
"is_free": false,
"extraPrices": {
"2 человека": 70,
"Больше 2 человек": 100
},
"our_time_id": 322
},
]
预订
方法:POST
将以下字段发送到您指定的URL
- comment - 客户的评论(如果有)
- datetime - 游戏的日期和时间,格式为 "Y-m-d H:i:s"
- email - 可能包含 null,因此请在数据库中设置时考虑到这一点
- name - 客户的姓名
- phone - 客户的电话
- players_num - 玩家数量
- price - 游戏价格
- signature - 如文档开头所述
- source - 总是从我们这里 "extrareality"
- uid:我们网站上的唯一预订ID
我们还可以发送一些额外的参数,这些参数已在您的调度表中指定,例如 our_time_id,或者根据预先协商的其他参数。
在成功处理请求后,您必须以JSON格式返回响应
{"success": true}
在失败的情况下返回
{"success":false, "message": "error message"}
在此字段中包含错误原因的文本。
示例
请求
POST https://superquestsite.com/api/quest2/book name=Иван &comment=Комментарий &datetime=2019-05-01 20:00:00 &email=test@tut.by &our_time_id=124 &phone=375291234567 &price=120, &signature=5a4fic756e8...6dd04bc9174, &source=extrareality &uid=854
响应
{"success": true}
或
{"success": false, "message": "Ваше имя не Джеймс Бонд" }
获取评论列表
在前面的方法中,请求由我们发起,但在这种方法中,您将发送GET请求。建议不要频繁发送(每30分钟一次)。
请求地址将是这样的:https://extrareality.by/api2/reviews?quest_id=...
获取最新的评论(按降序排序)。
其他可能的参数(除了 quest_id 之外)
- newer_than_id - 如果指定,则获取从该评论ID开始的评论,而不是获取所有评论(在获取列表时可以保存最大的ID,第二天从它开始获取)
- quantity - 获取的评论数量,最大100(如果小于1,则取50)
- rating_threshold - 不低于哪个平均评价选择评论(7.5,8等)
响应
Content-Type: application/json
[
{
"id": 9,
"datetime": "2019-07-03 10:00:00",
"name": "Иннокентий",
"text": "Квест супер! Свободу попугаям!",
"rating": 9.4
},
{...},
{...}
]
获取任务评价
向以下地址发送GET请求
https://extrareality.by/api2/rating?quest_id=...
或者如果您需要JSON格式的结果
https://extrareality.by/api2/rating?quest_id=...&json=1
在这种情况下,响应将大致如下
Content-Type: application/json
{
"questId": 9,
"rating": 9.87
}