可以将任何 Twitter 帐户源链接到电报频道的简单机器人

 

 

Twitter 到 Telegram 频道机器人 v2.0 (ttt)

该机器人的目标是利用 Twitter API v2.0 和 Telegram Bot API 将任何公共 Twitter 帐户的推文“无缝”复制到 Telegram 频道。

特征

  • 可以将 Twitter 帐户源复制到多个 Telegram 频道。例如,您可以拥有 1 个 Twitter 帐户来发布到多个 Telegram 频道,或者 2 个以上单独的 Twitter 到 Telegram 对。
  • 可以扩展和添加您自己的处理程序(管道)以进行 Twitter 提要操作。例如,如果您想对推文中的文本进行一些操作,或者您不需要在 Telegram 频道中查看任何带有猫的 gif,您可以按照您认为合适的方式处理每条推文。
  • 我最终决定将此机器人作为一个独立的应用程序(!),尽管您仍然需要 php ^8.1 才能在您的计算机上运行脚本。
  • 由于上一点,您现在可以在命令行上将所有必要的配置作为参数传递给机器人本身。

使用机器人之前

如果你想使用这个机器人,首先你需要在 Twitter 和 Telegram 端做一些准备。此应用程序可用于任何 Twitter 帐户。

  1. 创建电报频道。
  2. 创建电报机器人(通过@botfather),记住它是访问HTTP API的令牌。
  3. 将新创建的电报机器人添加到您选择的电报频道,并授予其访问“发布消息”的权限。注意:一个电报机器人可以添加到多个电报频道。
  4. 在developer.twitter上创建一个应用程序。

要求

PHP ^8.1

运行机器人本身

  1. 从命令行运行:

    php ttt manage --help

    这将打印机器人的帮助消息。

  2. 如果您想做这些事情,请将文件.env复制到文件并填写所有必要的变量或填写服务器上的环境变量。的值可以在developer.twitter上找到。 当您创建电报机器人时,应检索的值。.env.example.envTWITTER_*TELEGRAM_ACCESS_TOKEN

  3. 如果您想使用机器人的可选参数,则填充值的相同方法适用于所有--twitter-*--telegram-access-token可选参数。

  4. 填写机器人所需的参数 ( <ids>)。它应该是一个字符串,左侧是数字形式的 twitter id,右侧是电报频道 id,以:(冒号)分隔。

    • Twitter 帐户 ID 是数字形式的 ID,要将您的帐户转换@twitterid为数字形式,您可以使用此网站
    • Telegram 频道 id 是 form 中的 id @telegramchannelid

    该必需参数 ( <ids>) 可以重复多次。例如:

    php ttt manage "1111:@telegram1" "2222:@telegram2" "3333:@telegram3"

发展

如果您想从源代码构建或帮助项目并修复一些错误或添加一些功能,您可以利用Dockerfile项目中包含的功能。

  1. 在终端中运行docker-compose up -d
  2. 运行docker-compose exec app sh登录容器。
  3. 如果您想构建应用程序,请运行php ttt app:build <your-build-name>.
  4. 构建将位于该build文件夹中。

添加新管道(处理程序)

如果您想为推文添加一些自定义处理程序,例如向其中添加一些文本或删除将图像发布到 Telegram 频道的可能性,那么您可以添加自己的管道。

管道位于Pipelines文件夹中,您可以在其中添加自己的PipelineFactory管道来根据需要处理您的推文。PipelineFactory有一个链Pipes来处理推文内容。

推文处理的默认行为位于DefaultPipelineFactory.

每个管道由处理推文不同部分并更改主要 DataHub对象的管道组成。根据推文是否包含某些媒体(如视频、GIF、照片),它会更改DataHub对象以表示结果TelegramPayload。这有点像责任链模式。

例如,如果您想向文本添加某些内容或以某种方式对其进行格式化,您可以在默认之后添加自定义管道,TextPipe以根据需要设置文本格式。

配置文件config/pipelines.php有一个管道图。添加新管道时,您需要使用自定义名称在此文件中注册它。现在它只有一个名为 的管道 'default'

为了使用自定义管道,您需要在运行机器人时向机器人添加另一个可选参数。此参数的格式与所需参数的格式相同:左侧为电报 ID,右侧为pipelines.php文件中的管道名称,以(冒号)分隔:。例如:

php ttt manage 1111:@telegramchannelid --channel-pipeline=1111:customPipelineName

 

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理

源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源