Ingress intel api分析之一

概述

文章主要是记录自己抓取 https://www.ingress.com/r/getPlexts 接口数据做相应分析的结果与中间过程。

这个接口主要作用是获取日志信息,包括打po,占po,插脚,建link,建field,广播聊天。

接口通过post方式,上传json格式的参数,下发json结构的结果。

参数:

{
  "minLatE6": 22562501,
  "minLngE6": 114055660,
  "maxLatE6": 22575340,
  "maxLngE6": 114079349,
  "minTimestampMs": 1435485226617,
  "maxTimestampMs": -1,
  "tab": "all",
  "ascendingTimestampOrder": true,
  "v": "a9913f22cd769c2960a185abbd32fd48cb42df08"
}
  • 前四个参数两个点的经度纬度决定区域。(并没有做相应的测试,可能有出路)。
  • 接着的两个参数控制时间范围,是精确到毫秒的时间戳。
  • v 是一个鉴权的信息。在同一个session时间内,不会发生变化。
  • ascendingTimestampOrder 控制排序方式,类似与order by des/ase

时间参数的调节

由于数据大小的限制,返回的结果,最多有50条记录。
这些数据是位于[minTimestampMs,maxTimestampMs] 闭区间内的。
minTimestampMsmaxTimestampMs 都可以取-1,相当于 + ,
大体上有这四种情况。
* [ -1 ,t]
* [t,-1]
* [t1,t2]
* [-1,-1]
ascendingTimestampOrder=true 的情况下。
从最小的时间上到最大的时间的消息排序取前50条(如果有的话)。
ascendingTimestampOrder=false 的情况下。
从最大的时间上到最小的时间的消息排序取前50条(如果有的话)。
应该就是简化的如这条语句表达的。
select * from your_table where time >= min and time <=max order by time des/asc limit 50;

目前提供一个月的日志数据供查询。
min,max都为-1的情况下。
ascendingTimestampOrder=true 取的一个月前的最后的50条数据。
ascendingTimestampOrder=false 取的最新的50条数据。

鉴权信息

起鉴权作用的,有三个。
* cookies 中的 SACSID 。起一个标识sessionid的作用吧。
* cookies和http请求头中的csrftoken ,不管在 cookies或者请求头中缺少,都不能通过。
* post参数中的v ,还不清楚这个是从哪里生成的。还未追踪它的变化规律。

目前的做法是在firebug中抓了这几个值,当程序的配置参数。

想要实现的流程

定时刷新log信息,记录全天的操作信息。从这些全天的日志数据中最少可以实现的功能:

  • 指定po事件通知。
  • 给地图小范围的更新提供实时数据。
  • 玩家的常去的地,习惯路径。

还存在的问题

两次https请求出现Forbidden错误。
表现在,在程序运行期间,第一次获取数据,没有问题。第二次就出报forbidden。所以无法通过设置定时器来多次获取数据。程序单独运行一次是没有问题的。程序运行完后,再次运行,也没有问题。

排除了访问接口时间间隔的限制。
排除了http层的参数问题。
在用代理访问他网站,也存在相同的错误。
通过查找相关资料。
推测是https的session问题。
可能服务器存在一种检查机制,同一个https的session 只能发起一次数据请求。
而程序底层是建立ssl这后,一直用这条建立好的ssl来发送http的信息。

试过强制刷新https的session,未找到方式。
试过自实现底层ssl的这现方式,还未开开始。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值