Mastodon 微型博客新手指南

认识 Mastodon,这款正在像野火一样蔓延的开源 Twitter 替代品。
560 位读者喜欢这篇文章。
Get started with open source, orange flames

Opensource.com

Twitter 的起步就像许多令人兴奋的科技项目一样。它发明并提供了一种独特的“微型博客”服务,这是一种交互式的 RSS 订阅源。Twitter 作为一家公司,对新鲜的想法持开放态度,并提供了许多功能。它逐渐成为现代网络使用中非常重要的一部分,因此,可能感觉有必要将其全部收回。如今,Twitter 显然无法支持人们希望用它做的所有疯狂的事情,并且已经取消了许多他们曾经提供的功能,并且经常因同时缺乏监管和限制过多而受到批评。

由于 Twitter 是现代网络的重要组成部分,人们倾向于将 Twitter 视为“我们”拥有的东西。当然,有人可能会说,即使是封闭系统的用户最终也拥有它,至少在失去所有用户基本上会结束服务的情况下是这样。然而,事实仍然是,Twitter 是一种在原本开放的 HTTP 媒介上的闭源通信方法。

开源能解决这个技术和社会的难题吗?

GNU Social 和 Mastodon

GNU Social 是一款用于公共和私人通信的社交通信软件。它是一个微型博客平台,任何个人或人群都可以运行自己的通信节点,也可以将这些节点相互连接以进行互通。它从字面意义和情感意义上都解决了所有权问题:代码是开源的 (AGPL),为所有人所有,并且节点本身非常多,用户可以货比三家,找到最适合他们的社区,或者启动个人节点。

每个节点都是独立运行和管理的,可以用作私有节点,也可以对其他用户开放,它可以阻止用户或订阅源,也可以接受订阅源。控制权真正掌握在用户手中,但最终结果是一个真正的社交网络。

Mastodon 是 GNU Social 的一种实现,专注于良好、简洁的用户界面和较低的自托管门槛。

作为首屈一指的 Twitter 替代品,它正像野火一样蔓延。

它最好的地方在于,您可以将 Mastodon 和 Twitter 连接在一起,以便轻松过渡。

加入 Mastodon

Mastodon 的优势之一在于,它不仅仅只有一个 Mastodon。该项目本身拥有并运行 mastodon.social,但这只是更大网络中的一个节点。您可以加入任何接受新用户的 Mastodon 实例。instances.mastodon.xyz 上有一个正在运行的实例列表。

另一方面,如果您喜欢在服务器上进行修补,您也可以自由运行自己的实例。Mastodon 是开源的,因此(毫不奇怪)开发人员贡献了几种设置方法。您可以将其作为软件包在服务器上运行,也可以将其作为 Docker 镜像运行,甚至可以实验性地作为 Heroku 服务运行。

注册现有实例很容易。提供一个可用的电子邮件地址进行帐户验证,并设置您想要的密码。验证您的电子邮件地址后,像登录任何其他网站一样登录,使用您的电子邮件地址作为登录名和您的密码。登录后,您还可以设置双因素身份验证。

使用 Mastodon

默认的 Mastodon Web 界面比 Twitter 稍微复杂一些,但并不比 TweetDeck 等复杂。当然,您可以使用其他界面与 Mastodon 交互,包括 移动应用程序 或自定义 Atom 订阅源或使用 Mastodon 丰富 API 的自定义 Web 应用程序。然而,由于每个人都从 Web UI 开始,因此最好先看看它,以习惯 Mastodon 的功能。

mastodon_basic.jpg

Mastodon Web 界面截图。CC-0。

Web UI 由四列组成。左侧列是您的主要控制面板。最重要的是,它包含您的用户名和头像,以及供您输入文本的文本字段。在 Mastodon 中,您发布的任何内容都称为“toot”(就像汽车喇叭,或者可能是史前乳齿象发出的声音?)。

左侧列顶部还有几个选项卡:Get Started(开始使用)、Local Timeline(本地时间线)、Federated Timeline(联邦时间线)、Preferences(偏好设置)和 Logout(注销)。这几乎是您需要知道的所有内容,以便浏览界面。以下是每个选项卡的功能

Get Started(开始使用)

Get Started(开始使用)视图是您当前的默认视图。它将所有其他列恢复为默认视图。将其视为您的主页按钮。

Local Timeline(本地时间线)

Local Timeline(本地时间线)包含同一 Mastodon 服务器上任何非阻止和非静音用户的所有帖子。这与 Twitter 不同,因为 Twitter 没有本地实例。使用 Mastodon,您可以在一个节点上形成用户社区。

Federated Timeline(联邦时间线)

Federated Timeline(联邦时间线)是所有节点上发生的所有公共帖子的订阅源。这是最像 Twitter 的 Mastodon 活动视图,因为它打破了节点的概念,并显示了全球网络上发生的一切。

Preferences(偏好设置)

用户有几个选项可以与其他 Mastodon 用户互动,这些设置都在 Preferences(偏好设置)面板中。

mastodon_pref.jpg

Mastodon 偏好设置。CC-0。

您可以将您的帖子设置为私有或仅发送给您的关注者。您还可以配置双因素身份验证、编辑您的个人资料、更改您的密码、添加“应用程序”,以便您可以通过其 API 与 Mastodon 互动、配置电子邮件通知等等。

信息狂潮

这需要了解很多内容,但最简单的入门方法是只需单击 Federated Timeline(联邦时间线)选项卡,然后在第四列中观看所有兴奋的 Mastodon 用户向您发送他们的随机想法。

mastodon_feed.jpg

联邦订阅源。CC-0。

与其他用户互动非常直观。您可以回复他们的帖子,您可以转发您喜欢的帖子,您可以关注用户,以便他们的帖子出现在您的个人订阅源中,该订阅源位于第二列。

第三列包含通知。当其他用户与您互动时,您将在第三列中看到。

总结

  • 第 1 列 是您的指挥中心。
  • 第 2 列 是您的个人订阅源。
  • 第 3 列 包含通知。
  • 第 4 列 显示您的本地或联邦时间线。

这就是 Mastodon。

使用 Python 3 将 Mastodon 连接到 Twitter

社交网络同样依赖于“社交”部分和“网络”部分。Mastodon 在这两方面都有健康的表现。

该技术稳定可靠,因此网络连接非常好,自从它获得一些备受瞩目的媒体报道以来,用户数量大幅增加。但是,您在 Twitter 上认识的并非所有人可能都已迁移到 Mastodon,因此您可能希望您的帖子也出现在您的 Twitter 订阅源上。您不想手动执行此操作。

您可以使用名为 MastodonToTwitter 的工具将 Mastodon 和 Twitter 交叉发布。这是一个 Python 3 脚本,通过它们各自的 API 与 Twitter 和 Mastodon 交互。在 Twitter 端,需要进行一些设置,因为允许 Twitter API 在您的帐户上进行交互是选择加入的。

首先,您需要加入 dev.twitter.com 以获取使用者密钥和访问令牌,每个密钥和令牌都允许您使用外部脚本来控制 Twitter。

在 dev.twitter.com 上创建帐户后,导航到 My Apps(我的应用程序) 并单击 Create New App(创建新应用程序) 按钮。

mastodon_app.jpg

创建新应用程序。CC-0。

创建新应用程序并不像听起来那么可怕。在这种情况下,“应用程序”实际上只是获取登录令牌的一种机制。为您想要的应用命名,提供虚假的描述和虚假的网站。将回调字段留空。

mastodon_create.jpg

您可以逐字使用这些设置。CC-0。

创建应用程序后,您将被带到应用程序的概述。虽然这确实提供了您的使用者密钥,但您还需要几个其他部分来启用 API 访问。单击 Consumer key (API Key)(使用者密钥(API 密钥))行旁边的 manage keys and access tokens(管理密钥和访问令牌) 链接。

mastodon_overview.jpg

应用程序概述。CC-0。

在 Application Settings(应用程序设置)屏幕上,单击 Create my access token(创建我的访问令牌) 按钮。这将生成您的访问令牌,并在一个位置显示您需要的所有信息。

mastodon_keys.jpg

保密,安全。CC-0。

请妥善保管这些密钥,因为它们允许在没有用户名和密码等信息的情况下访问您的帐户。不要与他人分享,不要截取它们的屏幕截图并在网上发布。

运行 MastodonToTwitter.py

要运行 MastodonToTwitter,您必须安装其依赖项:pip3、python-twitter 和 Mastodon.py。要在 Fedora 或类似的 Linux 发行版上获取这些依赖项

$ sudo dnf install python3-pip
$ sudo python3 -m pip install twitter-python Mastodon.py

然后从 GitHub 下载 MastodonToTwitter。

$ git clone https://github.com/halcy/MastodonToTwitter.git MastodonToTwitter.clone

将目录更改为 MastodonToTwitter.clone 并使用 Python 3 运行脚本

$ python3 ./MastodonToTwitter.py

该脚本具有首次运行设置模式,如果未找到配置文件,则会自动启动,因此只需按照提示操作即可。

对于 Twitter,将有四个提示:每个提示对应您从创建 Twitter 应用程序中获得的每个密钥。只需粘贴密钥代码,与 Twitter 提供的代码完全相同。

对于 Mastodon,您只需要您注册的电子邮件地址和密码。

完成所有设置步骤后,MastodonToTwitter 将以非交互方式运行,静默监听 Twitter 和 Mastodon 上的任何活动。向 Mastodon 发布一些内容,您将看到 MastodonToTwitter 检测到它,然后在大约 30 秒后,相同的帖子会作为 Twitter 帖子弹出。反过来也是如此。

如何运行 MastodonToTwitter 取决于您。您可以随时手动运行以进行交叉发布,也可以将其设置为 cron 作业,以便每隔一两个小时运行一次。如果您是非常活跃的 Twitter 用户,您甚至可以将其作为守护程序在服务器上运行(低功耗 Raspberry Pi 服务器非常容易设置),以便它立即同步您的帐户。

加入联邦

独立和自由网络的未来在于联邦:由真实的人和值得信赖的社区管理的独立节点,所有节点都汇入更大的联合体。GNU 项目、MediaGoblin、Mastodon、GNUnet 和许多其他项目都在努力实现这一目标。

与其抱怨被您的互联网企业赞助商虐待,不如加入联邦?柯克船长加入了,结果对他来说还不错。试用一下 Mastodon 吧!

Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,经常同时进行。

9 条评论

您好,
联邦的又一名战士 https://mastodonfrance.com

加油各位,启动您自己的实例非常快速和简单。

可能值得一提的是,您可以通过在 toot 中提及 Mastodon 的另一位用户来 ping 他们,语法如下:@seth@anticapitalist.party

其中 @seth 是用户名,@anticapitalist.party 是他们帐户所在的实例(或节点或服务器)。

或者,此语法: http://anticapitalist.party/@seth

有人知道如果您通过特定实例注册,而该实例暂时宕机或该实例的维护者决定永久将其关闭,会发生什么情况吗?

我实际上也正在想同样的事情。我喜欢这个想法,但这是一个非常现实的问题。猜猜我们会发现的

回复 作者 Leon Palmer (未验证)

如果 Twitter 暂时或永久宕机,Twitter 用户会发生同样的事情,但至少对于联邦(GNU Social、Mastodon 等),网络的其余部分不会随之宕机,就像如果 GMail 宕机,电子邮件网络不会暂时或永久宕机一样。

托管您自己的实例是避免依赖他人服务器的一种方法,但在一段时间内(如果不是永远),有些人就是无法托管我们自己的实例(因为缺乏服务器端技能或 $ 用于托管费用)。致力于使每个用户的身份在实例之间可移植是一项优先事项,包括他们的社交图谱(关注者、被关注者)和帖子历史记录。理想情况下,身份不仅可以跨实例移植,还可以跨运行该实例的任何联邦应用程序移植。

回复 作者 Leon Palmer (未验证)

正如 Strypy 所说,是的,如果您使用的实例消失了,那么您的用户帐户也会消失。这是现代 Web 服务的现实,可能也是许多人选择使用价值数百万美元的提供商的原因;据推测,它们永远不会消失(不是真的,但这是一种看法,而且实际上,似乎确实存在一种趋势,即如果互联网的某个角落失败了,一些更大的实体会将其收购)。

在独立网络上,您有不同的方法来降低这种风险。

1) 首先,您可以导出您的数据。Mastodon 允许通过其 Web UI 和 API 执行此操作。因此,如果您非常担心丢失过去的 toot,或者您的朋友列表等等,您可以半定期地导出数据,甚至可以通过 API 编写脚本。

2) 或者,您可以运行自己的实例,或与您信任的一些可靠人群合作并运行协作实例。

3) 到目前为止启动的许多实例也有 Patreon 帐户,因此如果您想帮助确保实例持续存在,请投入资金。了解管理员。在您的网络使用中发挥积极作用!消费者文化往往会吞噬自身,因此请以此为契机,成为您使用的系统的一部分。

很多选择!

回复 作者 Leon Palmer (未验证)

我想设置一个服务器。是否有关于执行维护任务(例如升级到最新版本)的分步说明?

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.