Mastodon 微型博客新手指南

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

Opensource.com

Twitter 起初和许多令人兴奋的技术项目一样。 它发明并提供了一种独特的“微型博客”服务,一种交互式 RSS feed。 Twitter 作为一家公司,对新鲜的想法持开放态度,并提供了许多功能。 随着它逐渐在现代网络使用中变得如此重要,可以推测,它觉得有必要把它全部收回来。 今天,Twitter 显然无法支持人们想要做的所有疯狂的事情,并且已经摆脱了他们曾经提供的许多功能,并且经常因同时不受监管和过于严格而受到批评。

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

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

GNU Social 和 Mastodon

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

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

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 feed 或使用 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 是所有节点上发生的所有公共帖子的 feed。 这是最像 Twitter 的 Mastodon 活动视图,因为它分解了节点的概念并显示了全球网络上发生的所有事情。

Preferences (偏好设置)

用户有几个选项可以与其他 Mastodon 用户交互,以及 Preferences 面板中的那些设置。

mastodon_pref.jpg

Mastodon 偏好设置。 CC-0。

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

Feeding frenzy (信息狂潮)

这需要吸收很多信息,但最简单的入门方法是单击 Federated Timeline 选项卡,观看所有兴奋的 Mastodon 用户在第四列中向您嘟嘟他们的随机想法。

mastodon_feed.jpg

联邦 feed。 CC-0。

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

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

总结

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

这就是 Mastodon。

使用 Python3 将 Mastodon 连接到 Twitter

社交网络同样取决于“社交”部分和“网络”部分。 Mastodon 在两者中都有健康的代表性。

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

您可以使用名为 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 访问。 单击使用者密钥 (API 密钥) 行旁边的 manage keys and access tokens (管理密钥和访问令牌) 链接。

mastodon_overview.jpg

应用概述。 CC-0。

在“应用程序设置”屏幕上,单击 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 并使用 Python3 运行脚本

$ 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

加油,启动你自己的实例真的很快很简单。

值得一提的是,你可以通过在嘟文中提及 Mastodon 的其他用户来 ping 他们,语法如下:@seth@anticapitalist.party

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

或者,也可以使用这种语法:http://anticapitalist.party/@seth

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

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

回复 作者:Leon Palmer(未验证)

如果 Twitter 暂时或永久宕机,Twitter 用户也会遇到同样的情况。但至少有了 Federation(GNU Social、Mastodon 等),网络的其余部分不会随之宕机,就像 GMail 宕机时电子邮件网络不会暂时或永久宕机一样。

托管你自己的实例是避免依赖他人服务器的一种方式,但在一段时间内(如果不是永远),有些人就是无法托管我们自己的实例(因为缺乏服务器端技能或没有足够的资金支付托管费用)。 我们的首要任务是使每个用户的身份可在实例之间移植,包括他们的社交关系(关注者、被关注者)和帖子历史记录。 理想情况下,身份不仅可以在实例之间移植,还可以跨运行该实例的任何联合应用程序移植。

回复 作者:Leon Palmer(未验证)

正如 Strypy 所说,是的,如果你使用的实例消失了,那么你的用户帐户也会消失。 这是现代网络服务的现实,可能也是许多人选择使用数百万美元提供商的原因; 大概,他们永远不会消失(并非如此,但这是人们的看法,而且实际上,似乎有一种趋势,如果互联网的某个角落失败了,一些更大的实体就会将其收购)。

在独立网络上,你有不同的方法来减轻这种风险。

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

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

3) 到目前为止,许多启动的实例也都有 Patreon 帐户,因此,如果你想帮助确保实例能够继续存在,可以向它捐款。 了解管理员。 在你的网络使用中发挥积极作用! 消费者文化往往会吞噬自己,因此请将此作为参与你所使用系统的机会。

有很多选择!

回复 作者:Leon Palmer(未验证)

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

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