Back

这几天研究一下长毛象,和 Misskey。发现这开源微博是一个很适合发碎碎念的东西。而且我自己搭的实例就我一个人怎么发也无所谓。在另外的账号,另外的社区内潜水。事实证明,人与人的悲欢并不相同。

​研究active hub过程中,发现了一个go写的。据说能和长毛象互联。而且很适合替代微语js。正好与js所用的云服务国际版不对国内提供服务了。顺手换掉。

​记下使用的相关代码和部署过程。​看了一下misskey和gotosociety的api。

成果: https://www.ftls.xyz/whispers/

相关资料

Misskey

有PWA,可安装到手机电脑。像普通软件一样。

https://github.com/misskey-dev/misskey/
Fediverse不止Mastodon——Misskey介绍
Docker 搭建去中心化的微博客平台 Misskey

Misskey 部署好之后,打开 https://example.com/api-doc 可打开内置API文档,https://example.com/ 主页登录后侧边栏也有api调试工具。Misskey的缺点就是Docker镜像就2G。如果仅仅一个人使用,作为微语,有点浪费。同时有分支版本 Firefish 可以选择。

API:

POST
https://fimb.ftls.xyz/api/users/notes
body:

body json

{
    "userId": "93ckt7gzby",
    "untilDate": 2659324635043, // 13位时间戳
    "limit": 5
}
json

return
说明: 无需认证。请求最新的5条,数据依据时间逆序输出。只会显示public.

内容字段 data[0].text

时间字段 data[0].createdAt

随手写了个样例页面,引入了两个常用依赖,不要学。
HTML example

gotosocial

开源长毛象同类软件。可使用Tusky长毛象客户端,也就是说可以在手机上使用客户端发微语,说说。Docker镜像60M+。基本只有API,可使用,很轻量。建议客户端 Elk 鹿鸣。

资料

开源地址 https://github.com/superseriousbusiness/gotosocial
文档 https://docs.gotosocial.org/en/latest/
API文档 https://docs.gotosocial.org/en/latest/api/swagger/

部署起来不算很麻烦,20230916 算是简单。比 misskey 资源占用少很多。

根据文档部署完成后 创建用户并提升权限。

docker exec -it gotosocial /gotosocial/gotosocial admin account create --username kkbt --email youremail@gmail.com --password 'YOUR_PASSWORD'
docker exec -it gotosocial /gotosocial/gotosocial admin account confirm --username kkbt
bash

这之后,运行 gotosocial 服务,进入 /admin 或 /settings 路径,可以进行简单的管理。

反向代理

这个 GotoSocial 注册完之后,反向代理几个用到的路径就可以了。不反向代理也行,即使用类似 https://fmb.ftls.xyz ,也就是 @kkbt@fmb.ftls.xyz 而不是 @kkbt@ftls.xyz 这样的格式。虽然不太好看,但是各种问题少很多,也不用反向代理了。(此处 fmb 代表 联邦宇宙微博客,虽然在一段时间联邦后,我就没有继续让它联邦)

需要注意的是,这个决定应该在第一次运行之前就做好,并且在配置中正确的声明。在创建账户之后,如果想更改是一件非常麻烦的事情。

反向代理几个用到的路径,如果需要的话
反向代理几个用到的路径,如果需要的话

客户端

202405 我使用自己编译的 Gotosocial 来支持 markdown 图片,使用 API 发布嘟嘟。使用鹿鸣管理嘟嘟。

https://github.com/elk-zone/elk https://elk.zone/home/ 鹿鸣

Screenshot_20240526213022
Screenshot_20240526213022

API

说明: 无需认证。请求最新的5条,数据依据时间逆序输出。只会显示 public .也就是说,在客户端写微语的时候需要特别注明公开。其他参数参考官网的 swagger 文档。
API

GET https://ftls.xyz/api/v1/accounts/{{ USEID }}/statuses?limit=5

{{ USEID }} 字段,在搭建完成后,随便上传一张图片。再在网页中显示出来,图片链接路径中就包含 {{ USEID }} 。或者Docker搭建,映射出的data目录,里面有一个文件夹,文件夹名就是 {{ USEID }}。形如 01MQCWFXER7J0VT0NNYV2XQ6Q2

内容字段 data[0].text
时间字段 data[0].created_at

html和上面的几乎一致,只要改post为get就可以了。最新实际应用的,最新代码在 https://gitee.com/kkbt/www.ftls.xyz/blob/master/layouts/shortcodes/mastodon4.html
效果 https://www.ftls.xyz/whispers/

此外,此系列有其他文章供参考。系列 博客-微语

手机发布微语/说说
https://www.ftls.xyz/posts/20220802/
Author 恐咖兵糖
Published at
Copyright CC BY-NC-SA 4.0