Schedurio

一款开源的 Twitter 内容创作者推文调度器应用。使用 supabase 和 flutter 构建。

团队详情

个人参与。

关于应用。

这款应用对 Twitter 内容创作者非常有帮助,他们不必再为 Hypefury、Feedhive 等服务支付月费,现在可以通过添加自己的 API 密钥在桌面端使用 Schedurio 开源应用。目前支持 Macos 和 Web。

特点

  • 添加您的 Twitter API 密钥并提前安排推文。
  • 撰写长推文串。
  • 使计划更自然,不那么机器人化 • 如果您的计划包含多个固定时间,例如上午 9:00、下午 1:30 和下午 7:00,会显得不够真实,而这将提供一些变化,使其感觉更真实。 • 它会更改您计划中的每个时间段,使其在原始时间 ± 5 分钟的范围内。 • 例如:下午 1:00 将更改为下午 12:55 到下午 1:05 之间的某个时间。
  • 使用“立即发布”按钮即时发布。
  • 保存到草稿。
  • 分析您的每日推文连续记录,找出您最好的推文。
  • 历史记录(查看您之前的推文状态)
  • 对于 Twitter Blue 用户,它将字符限制更改为 10000。

托管演示链接

注意:托管演示链接不可用,因为这是一个开源项目,Twitter API 密钥和(访问令牌)不应与任何人共享。您必须部署自己的 supabase 项目(这是一个非常简单的步骤),并编辑 AppConfig 文件。有关更多详细信息,请查看演示或设置视频。

演示视频

output.mp4

Supabase 的使用

该应用广泛使用 supabase。应用使用的 supabase 服务。

  • Supabase 数据库。
    • 显然,supabase 数据库用于存储队列、推文和其他信息。
  • Supabase Edge Functions(用于发布计划的推文)。
    • 一旦您开始编写 supabase Edge Functions,它们就会变得非常方便。创建了一个可以调用 Twitter API 并发布推文的 Edge Function。(所有 Edge Functions 均使用 https://docs.dartedge.dev/platform/supabase 的 dart_edge 构建)
  • Supabase Storage(用于存储推文的计划媒体)。
    • Supabase Storage 用于在将推文的媒体文件上传到 Twitter API 之前存储它们。
  • 使用 pg_net 扩展从数据库调用 Edge Function。
    • 此扩展非常适合从数据库调用 Edge Function。

工作流程(使用 Supabase 进行的计划操作原理)

  1. 用户添加推文 → 它被添加到队列表中。
  2. 队列表触发 Postgres 函数,该函数创建一个 cron 任务(pg_cron)在选定的时间安排推文。
  3. 当 cron 作业触发函数时,它会使用 pg_net 扩展调用 supabase Edge Function。
  4. 推文就是这样发布的。

如何运行应用。

为了运行应用,请确保您的机器上已安装所有必需的软件。

要求

  • 已安装 Git
  • Supabase CLI。
  • Supabase 帐户。
  • Docker(仅当您想在本地主机上测试时)
  • Flutter 稳定版(3.7.9)

简要步骤。

  • 克隆仓库。
  • 部署 Supabase。
  • 在 Supabase Storage 中创建名为 `public` 的存储桶。
  • 在 `app/lib/config.dart` 文件中添加 Supabase URL 和 **服务密钥**
  • 运行 flutter run。

设置视频

重要链接

https://developer.twitter.com/en/portal/dashboard

POST media/upload

POST /2/tweets

Dart Edge | Supabase 文档

pg_net: Async Networking | Supabase 文档

pg_cron: Job Scheduling | Supabase 文档

https://supabase.com/docs/guides/cli/local-development

GitHub

查看 Github