开发环境
php版本8 MadelineProto sdk
自己写的小框架 ,先composer 一个最新 MadelineProto 包 到框架
框架开源地址:
- tg 根据开发要求接入拿到 api_id , api_hash
- session实例化会生成一个会话,初次执行会话时间较长
getHistory 方法实现向BOT关键词采集群,会有限制采集,可以尝试多账号模式
采集群思路(加入索引机器人群聊,其他用户的关键词搜索的时候自动采集入库(实现方式用定时60秒一次任务)
2022年7月1日 更新 :
采集向群里机器人发关键词采集是没有限制的
正常操作该是获取服务器的反馈更新而不是获取最新的聊条记录,获取到聊天msg_id去回复msg_id实现翻页
<?php
namespace app\api\controllers;
use \core\lib\model;
use \core\lib\Item;
// use \app\api\model\Index as Model;
use Exception;
class Index extends Item
{
/* 输入手机号 */
public function inputPhone()
{
$MadelineProto = $this->MadelineProto;
$MadelineProto->loop(function () use ($MadelineProto) {
yield $this->MadelineProto->phoneLogin($this->phone);
});
}
/* 输入验证码 */
public function smsLogin()
{
$MadelineProto = $this->MadelineProto;
$MadelineProto->loop(function () use ($MadelineProto) {
$authorization = yield $MadelineProto->completePhoneLogin($_GET['code']);
p($authorization);
if ($authorization['_'] === 'account.noPassword') {
throw new \danog\MadelineProto\Exception('2FA is enabled but no password is set!');
}
if ($authorization['_'] === 'account.password') {
$authorization = yield $MadelineProto->complete2falogin($authorization['hint']);
}
if ($authorization['_'] === 'account.needSignup') {
//无账号会自动注册
$authorization = yield $MadelineProto->completeSignup('随意一个字符串', '随意一个字符串');
}
p($authorization);
});
}
/**
* sendMessage
* @peer 发送通道
**/
public function sendMessage($peer, $message)
{
$MadelineProto = $this->MadelineProto;
$MadelineProto->loop(function () use ($MadelineProto, $peer