curl 基质/突触:通过客户端服务器API发送图像

nzkunb0c  于 2023-03-03  发布在  其他
关注(0)|答案(1)|浏览(143)

Matrix是一个用于安全、分散通信的开放网络。我在我的一台主机上运行Matrix主服务器的Synapse实现。
我想使用客户端-服务器API向特定的矩阵房间发送消息。我使用访问令牌和房间ID来执行API调用。我可以使用以下curl命令发送文本消息:

curl --header "Authorization: Bearer my_token" -X POST -d '{"msgtype":"m.text", "body":"my hello world messsage"}' "https://my_homeserver_url/_matrix/client/r0/rooms/"my_room_id"/send/m.room.message"

不幸的是,我还不能通过客户端-服务器API发送位于本地计算机上的图像。根据文档,您必须选择m.image作为消息类型,并相应地引用图像。
不幸的是,即使经过深入的研究,我还没有找到一个可行的例子。有人能给我指出正确的方向吗?
我尝试了各种curl命令,并尝试通过链接、路径或管道命令引用文件。

4dbbbstv

4dbbbstv1#

您必须上传文件/图片,然后将文件的url附加到新事件中。下面是一个示例:

1.上载映像-链接到规范

curl -d @image.png 'https://matrix.server/_matrix/media/r0/upload?filename=image.png&access_token=my_access_token' \
  -X 'POST' \
  -H 'Content-Length: 1350' \
  -H 'Content-Type: image/png' \
  --compressed

你会得到这样的回应

{
  "content_uri": "mxc://example.com/AQwafuaFswefuhsfAFAgsw"
}

2.发送事件-指向规范的链接

curl 'https://matrix.server/_matrix/client/r0/rooms/!rVwmJkYsikYjnIeLNU:matrix.server/send/m.room.message/1212?access_token=my_access_token' \
  -X 'PUT' \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  --data-raw '{"info":{"mimetype":"image/png","size":512,"w":512,"h":512},"msgtype":"m.image","body":"tta.webp","url":"mxc://example.com/AQwafuaFswefuhsfAFAgsw"}' \
  --compressed

相关问题