2021年8月

每个 Telegram 账户都可以获取到自己的 API Token 和 APP DI。您可以根据下列提示完成APP ID的获取

登录TG中心

登录Telegram的个人账户中心

https://my.telegram.org

BHA0QZH4@G31QK<code>(7</code>O[}`X.png

登录账户

输入您的TG绑定的手机号码,点击获取验证码,您将会在手机或者电脑端获取到验证码
GQP_92O63}Y$1JG5`DDE%28.png
回到页面上,输入您的验证码,确认登录
(6T$J0ZGPK5@Y@PT8K@)$YI.png

创建APP

登陆成功后,如图所示点击创建APP,进入页面后完成对应的信息填写,并提交。
`R4PBJH[$N{N%B{{VYR(K@U.png

提交完成后将会获取到APP信息如下:
2423.png

您现在就可以根据TGMama提示完成配置。

查询 group_source 表中 name 字段的值重复的记录

select * from group_source where name in
     (select name from group_source group by name having count(name)>1);

删除重复的数据,并且保留ID最小的记录

delete from group_source where name in
     (select name from

          (select name from group_source group by name having count(name)>1) as data1)

and id not in

      (select id from

          (select min(id) from group_source group by name having count(name)>1) as data22);

当我使用 Docker 构建了PHP开发环境之后,我遇到了新的MongoDB链接问题

The SCRAM_SHA_1 authentication mechanism requires libmongoc built with ENABLE_SSL

顾名思义,提示信息告诉我们,SCRAM_SHA_1 这种加密认证方式依赖于系统的libmongoc库在编译时启用了SSL选项的。看起来比较复杂,我们可以通过在Dockerfile中增加下面几行代码,来重新安装mongodb扩展和库

RUN apt-get install -y libcurl4-openssl-dev pkg-config libssl-dev
RUN pecl uninstall mongodb
RUN pecl install mongodb

经过修改后的Dockerfile如下

# Dockerfile
FROM php:7.4.1-fpm
# Install git
RUN apt-get update && \
    apt-get upgrade -y && \
    apt-get install -y git
RUN apt-get install -y libcurl4-openssl-dev pkg-config libssl-dev
RUN pecl uninstall mongodb
RUN pecl install mongodb
# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN docker-php-ext-enable mongodb

#RUN echo "extension=mongodb.so" >> /usr/local/etc/php/php.ini

EXPOSE 80 443 8001 8000

现在我们只需要重新运行Docker命令来构建一个新的版本即可

docker run TPHP:v2 .

写这篇文章的原因是今天只拿到Mac本本,并且需要在Mac上继续完成上午的开发项目。由于上午的Laravel项目依赖于php-ext-mongodb扩展,但Mac上没有,经过几番测试都无法安装正确,索性选择使用不那么熟悉的Docker来实现开发环境统一。通过网上的资料查询和尝试,最后发现Docker是真的好用,这里特别的记录一下。

Dockerfile

在项目下创建了一个文件Dockerfile,用于保存环境所需的创建条件,由于我的项目同时需要

  • PHP7
  • ext-mongodb
  • git
  • Composer

因此我的Dockerfile内容如下

# Dockerfile
FROM php:7.4.1-fpm
# Install git
RUN apt-get update && \
    apt-get upgrade -y && \
    apt-get install -y git
# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN pecl install mongodb && docker-php-ext-enable mongodb
RUN echo "extension=mongodb.so" >> /usr/local/etc/php/php.ini

EXPOSE 80 443 8001 8000

最后使用的 EXPOSE 语法,作用是将后面的端口暴露出来以便于后期使用容器时候进行映射。

创建镜像

准备好Dockerfile内容后,运行如下命令完成了我的镜像创建,我命名为 TPHP,并且版本号设定为v1:

docker build -t TPHP:v1 .

运行容器

等待上述命令完成后,你就可以在本地Docker控制台查看到创建好的景象,点击运行即可创建一个新的容器环境。

非常高兴! 我的 TGMama v1.1.0版本正式诞生,着重的,这里要特别感谢向我提这个想法的 @Terry 老师。是他的一句话唤起了我对研究Telegram API的兴趣。使得我能迅速的Demo代码,并且最后尝试完成了可分发的安装包创建。目前这个项目可以在Linux命令行下面运行,并且可以自动执行24小时群发任务。

TGMama - Telegram自动消息群发助手

Telegram 是一款开源的聊天软件,并且官方已经公布了相关的API。最近也一直在研究如何利用Telegram的API让平时的工作变得更加省时一点。

经过近3天的研究和尝试,初步实现了一个小助手,使得可以全自动的为账号内的所有群组发送指定的信息。同时还设计了下面这些特点:

  • 使用自己的API KEY,减少滥用限制
  • 支持多个Telegram账户同时做群发工作
  • 支持设定群发的重复间隔时间,实现24小时反复群发
  • 支持在窗口内以交互的形式设置需要群发的信息
  • 支持在开始群发之前选择需要忽略的群组

当然,随着测试的不断跟进,陆续还发现多个小问题,最近将会继续完善。后续我将为大家分享 TGMama 的安装和使用步骤。