Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
vivien8261 committed Aug 17, 2024
1 parent 06e136b commit cb822af
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 14 deletions.
66 changes: 56 additions & 10 deletions docs/develop/adapters/qqGroup.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# QQ 群机器人 <span class="beta-tag">Beta</span>

[QQ 开放平台](https://bot.q.qq.com/wiki/#_2-%E4%BC%81%E4%B8%9A%E4%B8%BB%E4%BD%93%E5%85%A5%E9%A9%BB) 完成企业主体入驻,即可创建可在
[QQ 开放平台](https://bot.q.qq.com/wiki/#_2-%E4%BC%81%E4%B8%9A%E4%B8%BB%E4%BD%93%E5%85%A5%E9%A9%BB) 完成主体入驻,即可创建可在
QQ 群聊里使用的 QQ 群机器人。

## 在公网下使用

QQ
群聊适配器需要在本地启动资源服务让腾讯端能够访问媒体资源,默认在公网下使用。如果无法在公网下部署,请参考[自定义资源服务](#自定义资源服务)
群聊适配器默认在本地启动资源服务让腾讯服务器能够访问媒体资源,需要在公网下使用。如果无法在公网下部署,请参考[自定义资源服务](#自定义资源服务)

```python
from amiyabot.adapters.tencent.qqGroup import qq_group
Expand Down Expand Up @@ -37,8 +37,16 @@ bot = AmiyaBot(appid='******', token='******', adapter=qq_group(client_secret))
了解分片机制。

```python
bot1 = AmiyaBot(appid='...', token='...', adapter=qq_group(client_secret, shard_index=0, shards=2))
bot2 = AmiyaBot(appid='...', token='...', adapter=qq_group(client_secret, shard_index=1, shards=2))
bot1 = AmiyaBot(
appid='...',
token='...',
adapter=qq_group(client_secret='...', shard_index=0, shards=2),
)
bot2 = AmiyaBot(
appid='...',
token='...',
adapter=qq_group(client_secret='...', shard_index=1, shards=2),
)
```

::: danger 注意<br>
Expand Down Expand Up @@ -85,12 +93,44 @@ bot = AmiyaBot(

## 自定义资源服务

多数情况下我们推荐使用第三方托管服务来搭建资源服务,如 [腾讯云COS](https://www.baidu.com/s?wd=%E8%85%BE%E8%AE%AF%E4%BA%91COS)
[阿里云OSS](https://www.baidu.com/s?wd=%E9%98%BF%E9%87%8C%E4%BA%91OSS) 等。
非公网部署下的资源服务难题解决途径非常多,这里列举两个比较常见的解决办法。

### 使用内网穿透

使用一些内网穿透工具代理本地地址 http://127.0.0.1:8086(视配置而定)后,通常会得到一个新的地址。继承 `QQGroupChainBuilder`
并覆盖 **domain** 方法,即可使用内网穿透让腾讯服务器访问资源。

示例:

> **http://<span style="color: red">3913rc56vl17.vicp.fun:40229</span>/resource**
红色高亮部分即为内网穿透地址,`/resource` 为固定的路由值。

```python
from amiyabot.adapters.tencent.qqGroup import qq_group, QQGroupChainBuilder, QQGroupChainBuilderOptions

class PenetrationChainBuilder(QQGroupChainBuilder):
@property
def domain(self):
return 'http://3913rc56vl17.vicp.fun:40229/resource'


通过自定义默认的 `ChainBuilder`,来实现上传文件到托管服务以及返回生成的 url。
bot = AmiyaBot(
...,
adapter=qq_group(
...,
default_chain_builder=PenetrationChainBuilder(
QQGroupChainBuilderOptions(),
),
),
)
```

### 继承 ChainBuilder 并实现相关方法。
### 继承 ChainBuilder 并实现相关方法使用第三方托管服务。

多数情况下我们推荐使用第三方托管服务来搭建资源服务,如 [腾讯云COS](https://www.baidu.com/s?wd=%E8%85%BE%E8%AE%AF%E4%BA%91COS)
[阿里云OSS](https://www.baidu.com/s?wd=%E9%98%BF%E9%87%8C%E4%BA%91OSS) 等。通过自定义默认的 `ChainBuilder`
,来实现上传文件到托管服务以及返回生成的 url。

可参考 [进阶指南 - 介入媒体消息的构建过程](/develop/advanced/chainBuilder.md)

Expand All @@ -99,7 +139,7 @@ from typing import Union
from graiax import silkcoder
from amiyabot import ChainBuilder

class MyBuilder(ChainBuilder):
class ThirdPartyChainBuilder(ChainBuilder):
@classmethod
async def get_image(cls, image: Union[str, bytes]) -> Union[str, bytes]:
# 上传图片到第三方托管服务
Expand All @@ -120,5 +160,11 @@ class MyBuilder(ChainBuilder):
return url # 返回访问资源的 URL


bot = AmiyaBot(..., adapter=qq_group(default_chain_builder=MyBuilder()))
bot = AmiyaBot(
...,
adapter=qq_group(
...,
default_chain_builder=ThirdPartyChainBuilder(),
),
)
```
32 changes: 28 additions & 4 deletions docs/guide/deploy/console/configure.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,37 @@

![](../../../assets/console/addBot.png)

## QQ频道机器人(官方)
## QQ群 & QQ频道机器人(官方)

[QQ 开放平台](https://q.qq.com/#/) 查看并在实例配置填写你注册的频道机器人信息,表单字段就是对应内容。
[QQ 开放平台](https://q.qq.com/#/) 查看并在实例配置填写你注册的机器人信息,表单字段就是对应内容。

## QQ群机器人(官方)
::: danger 请注意<br>
群机器人在不修改任何配置的情况下,**无法在个人电脑(非公网)上部署**,也就是只支持在**云服务器**上部署
,如果您一定要在个人电脑上部署,目前提供了 [内网穿透](https://www.baidu.com/s?wd=内网穿透)
[腾讯云COS](https://www.baidu.com/s?wd=腾讯云COS) 的方式解决。
:::

### 内网穿透

实例配置资源服务地址为 `127.0.0.1`。端口随意,默认为 `8086`。使用内网穿透工具代理 http://127.0.0.1:8086 后,修改配置文件
`config/penetration.yaml` 的 ports 参数,新增一行配置,字段为实例配置里的资源服务端口,值为内网穿透地址,重启兔兔生效。

```yaml
ports:
8086: http://3913rc56vl17.vicp.fun:40229
```
### 腾讯云COS
[QQ 开放平台](https://q.qq.com/#/) 查看并在实例配置填写你注册的群机器人信息,表单字段就是对应内容。
无需理会资源服务配置,修改配置文件 `config/cos.yaml` 如下(懂的都懂,不懂的建议折腾内网穿透),重启兔兔生效。

```yaml
activate: true
domain: https://amiyabot-xxxxxxxxx.cos.ap-guangzhou.myqcloud.com
folder: /temp/group
secret_id: AKIDwiHcxxxxxxxxxxCpGfqDZp2U
secret_key: Uky7BB8zxxxxxxxxigQzVt64oLgnn
```

## KOOK机器人

Expand Down

0 comments on commit cb822af

Please sign in to comment.