Skip to content

基础功能

检测 API 请求标头

php
\FresnsCmdWord::plugin('Fresns')->checkHeaders();
结果示例
json
{
    "code": 0,
    "message": "ok",
    "data": {
        "appId": "qe12345",
        "platformId": 4,
        "version": "2.0.0",
        "deviceInfo": "",
        "langTag": "zh-Hans",
        "timezone": "+8",
        "contentFormat": "",
        "aid": "6a3bb3bc",
        "aidToken": "uoX1hk6SHUgB2MFGJwNx38dem9DA7Vsz",
        "uid": 782622,
        "uidToken": "PqBpwPLJgfd1sH0X5JffYFGxTSc8RW7c",
        "signature": "d5db4371a0c2d7e17009dea8d53ecf15a7ec07b9",
        "timestamp": 1626426833
    }
}

校验签名

php
\FresnsCmdWord::plugin('Fresns')->verifySign($wordBody);
参数名类型是否必传说明
appIdStringYESApp ID
platformIdNumberYES平台编号(配置表 platforms 键名的键值)
versionStringYES语义化版本号
timestampNumberYES签名生成时间(当前 Unix 时间戳,精确到秒或毫秒都支持)
signatureStringYES请求签名
aidStringNO/YES账号参数(账号主表 accounts->aid 字段)
aidTokenStringNO/YES账号身份凭证
uidNumberNO/YES用户参数(用户主表 users->uid 字段)
uidTokenStringNO/YES用户身份凭证
verifyTypeNumberNO验证 session_keys->type,留空则默认为 1
verifyFskeyStringNO类型为 3 时专用,验证关联插件

验证访问令牌

php
\FresnsCmdWord::plugin('Fresns')->verifyAccessToken($wordBody);
参数名类型是否必传说明
accessTokenStringYES参见:为插件生成访问令牌
accountLoginBooleanNO是否要求必须登录账号,留空则不要求
userLoginBooleanNO是否要求必须登录用户,留空则不要求
逻辑说明

用户将通过 URL 访问插件页面,URL 中会传参凭证信息,用于一键登录。

  • 1、先使用 URL Encode 解码 {accessToken} 变量名的值,得到 base64 加密字符串
  • 2、再使用 base64 解密字符串,得到 json object 格式的 headers 数据
  • 3、获取 headers 中生成签名的信息,校验签名是否正确,正确则 code0
  • 4、无论是否正确,都输出 headers 信息,格式见下方结果示例。
结果示例
json
{
    "code": 0,
    "message": "ok",
    "data": {
        "appId": "qe12345",
        "platformId": 4,
        "version": "2.0.0",
        "deviceInfo": "",
        "langTag": "zh-Hans",
        "timezone": "+8",
        "contentFormat": "",
        "aid": "6a3bb3bc",
        "aidToken": "uoX1hk6SHUgB2MFGJwNx38dem9DA7Vsz",
        "uid": 782622,
        "uidToken": "PqBpwPLJgfd1sH0X5JffYFGxTSc8RW7c",
        "signature": "d5db4371a0c2d7e17009dea8d53ecf15a7ec07b9",
        "timestamp": 1626426833
    }
}

获取 IP 信息

php
\FresnsCmdWord::plugin('Fresns')->ipInfo($wordBody);
参数名类型是否必传说明
ipStringYES支持 IPv4 和 IPv6

创建交互日志

php
\FresnsCmdWord::plugin('Fresns')->createSessionLog($wordBody);
参数名类型是否必传说明
typeNumberYES记录类型
appIdStringNO密钥 App ID
platformIdNumberYES平台编号(配置表 platforms 键名的键值)
versionStringYES语义化版本号,例如: 2.0.0
langTagStringNO语言标签
fskeyStringNO插件 Fskey
actionNameStringYES功能模型名或者接口路径
例如模型名 App\Models\Post
例如接口路径:/api/fresns/v1/account/auth-token
actionDescStringYES行为描述,自定义输入内容
actionStateNumberYES1.未知或执行中 / 2.成功 / 3.失败
actionIdStringNO例如发表行为,则代表发表内容的 ID
插件行为,凭此 ID 可查询对应插件那边记录的关联信息
aidStringNO账号 ID
uidNumberNO用户 ID
deviceInfoObjectNO交互设备信息
deviceTokenStringNO交互设备 Token
例如 iOS Device Token 或 Android Device Token
可应用于推送消息
loginTokenStringNO登录令牌
moreInfoObjectNO其他自定义信息

检测登录令牌 loginToken

php
\FresnsCmdWord::plugin('Fresns')->checkLoginToken($wordBody);
参数名类型是否必传说明
appIdStringYESApp ID
platformIdNumberYES平台编号(配置表 platforms 键名的键值)
versionStringYES语义化版本号,例如: 2.0.0
loginTokenStringYES登录令牌
  • 登录令牌由 createSessionLog 命令字创建。

更新登录令牌 loginToken

php
\FresnsCmdWord::plugin('Fresns')->updateLoginToken($wordBody);
参数名类型是否必传说明
loginTokenStringYES登录令牌
uidNumberYES用户 ID
pinStringNO用户 PIN
Personal Identification Number
  • checkLoginToken 命令字结果状态为 3160431508 使用
    • 31604 用户需输入 PIN
    • 31508 账户下有多个用户,需选择一个
  • 如果不使用该命令字更新令牌信息,则该令牌不生效。

发送验证码

php
\FresnsCmdWord::plugin('Fresns')->sendCode($wordBody);
参数名类型是否必传说明
typeNumberYES类型:1.邮件验证码 / 2.短信验证码
templateIdNumberYES验证码模板 ID
langTagStringNO语言标签,留空则使用默认语言标签
accountStringYES账号(邮箱或手机号)
countryCodeNumberNO国际区号(手机号专用)

核对验证码

php
\FresnsCmdWord::plugin('Fresns')->checkCode($wordBody);
参数名类型是否必传说明
typeNumberYES类型:1.邮件验证码 / 2.短信验证码
templateIdNumberYES验证码模板 ID
accountStringYES账号(邮箱或手机号)
countryCodeNumberNO国际区号(手机号专用)
verifyCodeStringYES验证码

更新或创建回调数据

php
\FresnsCmdWord::plugin('Fresns')->updateOrCreateCallbackContent($wordBody);
参数名类型是否必传说明
fskeyStringYES插件 Fskey
callbackKeyStringYES长度限制 64 字符
callbackTypeNumberNO参考
callbackContentArrayNO
retentionDaysNumberNO默认 1

获取回调数据

php
\FresnsCmdWord::plugin('Fresns')->getCallbackContent($wordBody);
参数名类型是否必传说明
fskeyStringYES插件 Fskey
callbackKeyStringYES长度限制 64 字符
timeoutNumberNO单位:分钟
获取多少分钟内的数据
markAsUsedBooleanNO默认 false

Released under the Apache-2.0 License