extrareality/api-helper

此包已被弃用且不再维护。没有建议的替代包。

用于与Extrareality网站通信的辅助库

v1.1.3 2019-04-16 10:04 UTC

This package is auto-updated.

Last update: 2023-10-26 05:50:37 UTC


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
}