wechaty/go-wechaty

[BUG] PuppetService Start() rejection 【已解决】

wordgao opened this issue · 2 comments

docker wecahty:latest
go-wecahty v0.31 or v0.35

docker wecahty 不管是true还是false,均正常运行
export WECHATY_PUPPET_SERVICE_NO_TLS_INSECURE_CLIENT="true"
export WECHATY_PUPPET_SERVICE_NO_TLS_INSECURE_CLIENT="false"

环境变量

export WECHATY_LOG="verbose"
export WECHATY_PUPPET="wechaty-puppet-padlocal"
export WECHATY_PUPPET_PADLOCAL_TOKEN="puppet_padlocal_xxxxxxxxxxxxxxxxxxxxxx"
export WECHATY_PUPPET_SERVICE_NO_TLS_INSECURE_CLIENT="true"
export WECHATY_PUPPET_SERVER_PORT="8788"
export WECHATY_TOKEN=$(curl -s https://www.uuidgenerator.net/api/version4)
echo "WECHATY_TOKEN=$WECHATY_TOKEN"
```

启动参数
```docker
docker run -ti \
  -d \
  --name wxservice \
  --restart=always \
  --privileged \
  --network=host \
  -e WECHATY_LOG \
  -e WECHATY_PUPPET \
  -e WECHATY_PUPPET_SERVER_PORT \
  -e WECHATY_PUPPET_PADLOCAL_TOKEN \
  -e WECHATY_PUPPET_SERVICE_NO_TLS_INSECURE_SERVER \
  -p "$WECHATY_PUPPET_SERVER_PORT:$WECHATY_PUPPET_SERVER_PORT" \
  -e WECHATY_TOKEN \
  wechaty/wechaty:latest
```

但是要么是这个报错的信息,要么是0.0.0.0的JSON数据,即使有正确的IP地址和端口JSON返回,也无法让go-wechaty连接上去。

```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot GET /v0/hosties/</pre>
</body>
</html>
root@userroot:/home/userroot#
```

```go
bot := wechaty.NewWechaty(wechaty.WithPuppetOption(wp.Option{
		Endpoint: "113.74.111.111:8788",
		//Token:token,
		// 超时控制
		Timeout: time.Duration(2 * time.Minute),
	}), wechaty.WithName("IpadLocalWechat"))
```

但 go-wechaty始终连接不上去,报如下的问题。

2021/10/07 16:12:56 PuppetService Start()
2021/10/07 16:12:56 puppet start err:  PuppetService Start() rejection: startGrpcStream err:rpc error: code = Unavailable desc = connection closed
panic: PuppetService Start() rejection: startGrpcStream err:rpc error: code = Unavailable desc = connection closed

问题已解决,并附带目前我所使用的参数,如有必要自己直接复制拿过去用吧。
目前我发现的最大的问题就是新版看到的教材一个是server 一个是 client 的参数,实际上使用的是server要设置true。
client虽然docker没用上,放着备用吧。

WECHATY_PUPPET_SERVICE_NO_TLS_INSECURE_SERVER
WECHATY_PUPPET_SERVICE_NO_TLS_INSECURE_CLIENT

export WECHATY_LOG="verbose" export WECHATY_PUPPET="wechaty-puppet-padlocal" export WECHATY_PUPPET_PADLOCAL_TOKEN="puppet_padlocal_xxxxxxxxxxxxxxxxx" export WECHATY_PUPPET_SERVICE_TOKEN="puppet_padlocal_xxcxxxxxxxxxxxxxxx" export WECHATY_PUPPET_SERVICE_NO_TLS_INSECURE_CLIENT="true" export WECHATY_PUPPET_SERVICE_NO_TLS_INSECURE_SERVER="true" export WECHATY_PUPPET_SERVER_PORT="8788" export WECHATY_TOKEN=$(curl -s https://www.uuidgenerator.net/api/version4) echo "WECHATY_TOKEN=$WECHATY_TOKEN"

目前使用的docker wechaty 是最新的next版本

docker run -ti \ -d \ --name wxservice \ --restart=always \ --privileged \ --network=host \ -e WECHATY_LOG \ -e WECHATY_PUPPET \ -e WECHATY_PUPPET_SERVER_PORT \ -e WECHATY_PUPPET_PADLOCAL_TOKEN \ -e WECHATY_PUPPET_SERVICE_NO_TLS_INSECURE_SERVER \ -e WECHATY_TOKEN \ wechaty/wechaty:next

下面是golang代码

token := "eb4b4a1b-dd42-xxxxxxxxxx" //echo "WECHATY_TOKEN=$WECHATY_TOKEN"
// 初始化wechaty
bot := wechaty.NewWechaty(wechaty.WithPuppetOption(wp.Option{
//Endpoint: "11.11.11.11:8788", // 不知道为什么检测token的返回json是0,端口在正常工作也无法使用
Token:token, //目前是通过token自动获取的方式可正常连接。但检测token的时候返回的json依然是0.0.0.0。但可正常使用。
// 超时控制
Timeout: time.Duration(2 * time.Minute),
}), wechaty.WithName("IpadWechat"))
`

已解决,关闭