Oray开放平台开发指引

花生壳PHTunnel嵌入(通用)

概述

PHTunnel是新一代花生壳核心应用,纯c实现,速度较上一代有显著性能提升,并减小了文件大小。

本文档帮助用户在设备上运行PHTunnel,并完成理解PHTunnel的运行方式。

安装

成为开发者并创建花生壳应用

登录贝锐科技开发者平台(https://developer.oray.com/),申请成为开发者。创建花生壳应用同时获得AppID和AppKey。

下载

在贝锐科技开放平台(https://developer.oray.com/sdk)下载对应平台的二进制可执行程序。

使用

启动PHTunnel

  1. 1)直接运行PHTunnel --appid 9056 --appkey 3xxxxxxxx5 -l /tmp/PHTunnel.log

其中appid和appkey参数为开发者平台获取的参数,-l为日志输出路径

  1. 2)使用手机"花生壳管理"登录自己的花生壳账号并APP扫二维码

  1. 3)登录b.oray.com
  2. 4)添加映射

  1. 5)访问映射地址

关闭PHTunnel

可通过-p --pid参数指定的文件中拿到PHTunnel的进程pid,然后调用kill命令终止PHTunnel。

如kill $(cat /tmp/PHTunnel.pid 2> /dev/null | grep 'pid=' | cut -d'=' -f2 2> /dev/null)

PHTunnel参数列表

-h, --help 帮助

-s, --server 服务器地址

-l, --log 日志文件路径

-v, --verbose 打印详细日志到标准输出

-q, --qrcode print login qrcode

-r, --rpc 是否开启rpc监听

-c, --config 配置文件加载路径

-p, --pid 输出的状态文件,里面包括进程的pid,方便关闭时杀掉进程

-f, --forward Remote admin forward, default: 127.0.0.1:80

-d,--daemon 后台运行(linux)

-S,--service 作为windows服务运行(windows)

-i,--appid App ID

-k,--appkey App Key

-e,--deviceinfo 设备自定义数据

后台运行方式

由于在前台运行不方便,更多的需求是后台运行,但后台运行无法直观的拿到二维码登录信息。以下将说明后台运行的方法。

  1. 1)运行PHTunnel, 注意添加-r或--rpc参数和-d或--daemon参数
  2. 2)通过getsn接口(参阅下表)拿到sn和随机密码
  3. 3)使用接口返回的sn和密码访问https://hsk-api.oray.com/devices/qrcode并获取二维码(参阅下表)
  4. 4)组织逻辑将二维码显示在用户界面上
  5. 5)通过手机扫描二维码并登录花生壳
  6. 6)通过getmgrurl接口(参阅下表)得到用户云管理入口,引导用户进入后台管理界面

获取SN 和 密码 接口

地址: http://127.0.0.1:16062/ora_service/getsn
方法: GET
参数:
返回格式: Json
返回数据: {"result_code":0, // 非0代表错误"data":{"device_sn":"设备SN","device_sn_pwd":"设备密码","status":1, 在线状态 重试(3), 登录中(2) 在线(1), 离线(0)"public_ip":"116.235.167.135" // 公网IP}}

二维码刷新接口

获取二维码的图片地址以及二维码有效期

地址: https://hsk-api.oray.com/devices/qrcode
方法: POST
参数: { "sn": "设备sn", "password": "设备密码"}
参数类型:Content-Type application/json
返回格式: Json
返回数据: {"qrcode":"二维码地址","qrcodeimg":"二维码图片地址","expires":有效期}

映射管理接口

映射管理接口返回管理url,自动登录b.oray.com进行映射管理。

地址: http://127.0.0.1:16062/ora_service/getmgrurl
方法: GET
参数:
返回格式: Json
返回数据: {"result_code":0,"data":"https://xxxx/xxxx" // 为空时说明没有登录账号}

设备账号解绑接口

地址: https://hsk-api.oray.com/devices/unbinding
方法: POST
参数: { "sn": "设备sn", "password": "设备密码"}
参数类型:Content-Type application/json
返回格式:
返回数据: 成功:HTTP状态码为200, 失败:HTTP状态码为500

实例

参阅 OpenWrt嵌入方法 文档,为openwrt系统嵌入实例。