使用受控端api导入网站出现问题

baiyue 2019-4-11 672

使用受控端api导入网站时返回ok和任务id,面板上却没有显示导入的网站。

API:
请求:

$result = $agent->Get("sitemgr", "Site.BackupFile.Import", $myparam= array(
    'StackId'=>1,
    'SiteGroupId'=>1,
    'FilePath'=>'/data/nginx_php/vdirs/u2.icanweb.cn/www/tmp/chds/chds12242.zip',
    'SiteCode'=>'4235254',
    'Objects'=>'all',
    'Override'=>'N'
));

返回:

Array ( [ACTION] => Site.BackupFile.Import [CODE] => ok [DATA] => Array ( [TaskId] => 3736600441 ) )



在面板上手动导入同样路径的备份文件正常,可以在列表显示。

面板请求:

StackId: 1
SiteGroupId: 1
FilePath: /data/nginx_php/vdirs/u2.icanweb.cn/www/tmp/chds/chds12242.zip
Override: N
api_action: Site.BackupFile.Import
Objects: all
SiteCode: 4235254
_r: 1554915723964
api_agent_app: sitemgr
api_nodeid: 1

返回ok

api不行吗?

最新回复 (9)
  • 虚竹 2019-4-11
    引用 2
    所有有返回任务ID的API接口,都必须使用WebSocket接口连接启动任务才会执行哦。
    可以F12跟踪下面板上的操作。
  • baiyue 2019-4-11
    引用 3
    不能直接用sdk吗,这么麻烦
  • baiyue 2019-4-11
    引用 4
    启动任务用哪个api
  • 虚竹 2019-4-11
    引用 5

    SDK里目前的确是缺少websocket相关接口的实现。
    TaskId取到后,需要使用websocket连接内置应用任务管理器(代号是taskmgr)的这个接口 Task.Start 开始执行任务:
    http://apidoc.cn/appnode/app-taskmgr#/interface/action/1216922031249274

  • baiyue 2019-4-11
    引用 6

    ws://100.00.00.00:1234/?TaskId=2327035228&api_agent_app=taskmgr&api_action=Task.Start&api_format=json&api_timestamp=1554964686&api_nonce=6Du9y5xjgypqcaIQ&api_sign=52f1ee092p90ce3709986178b969c2b0

    返回:failed: Error during WebSocket handshake: Unexpected response code: 200

    签名直接用sdk里面的代码签的,应该没错

  • 虚竹 2019-4-11
    引用 7
    具体的PHP代码可以粘贴出来看看
  • 虚竹 2019-4-11
    引用 8

    和开发确认了一下,你要用php连接websocket必须找个php websocket client类库,比如:
    https://stackoverflow.com/questions/7160899/websocket-client-in-php

  • baiyue 2019-4-11
    引用 9
    用php websocket client 也不行
    你们这个受控端根本不接受websocket通信
  • 虚竹 2019-4-12
    引用 10
    受控端一定是接受websocket通信的,不然我们的面板是怎么实现的呢?
返回
发新帖