文章 "如何采用 MQL5 创建用于 Telegram 的 bots" - 页 40

 
Yevhenii Levchenko:

每个终端都有自己的 Telegram 频道。

我想问题是我不明白这句话的意思。我不太懂 Telegram 和频道,你能解释得更详细一些吗?

 
Sergey Kasirenko:

我想问题是我不明白这句话的意思。我不太会用电报和频道,你能解释得更详细一些吗?

在 Telegram 中,你可以创建频道和群组。这是第一个--这是频道,也就是我们正在谈论的频道。虽然您也可以创建群组,但我想...

 
Yevhenii Levchenko:

你可以在 Telegram 中创建频道和群组。第一个是频道,也就是我们正在谈论的频道。虽然您也可以创建群组,但我想...

那么,如何将群组或频道与终端本身联系起来? 如果我们不是通过 api 与机器人联系,而是与群组联系......?我不明白这个结构。现在的情况是这样的,有一个聊天机器人,我直接给它写一个命令,在智能交易终端中,它都能接收到,但如果我把它放到另一个终端中,getUpdates 当然就不起作用了,因为已经有一个请求是针对这个 token.... 的。

还有什么其他方法可以从Telegram 机器人 获取数据?

 
Sergey Kasirenko:

那么,我们如何将群组或频道与终端本身连接起来呢? 如果我们不是通过 api 访问机器人,而是访问群组......?我不明白其中的结构。现在的情况是这样的,有一个聊天机器人,我直接给它写一个命令,在终端中,所有命令都会被智能交易系统捕获,但如果我把它放到另一个终端中,getUpdates 当然就不起作用了,因为这个 token.... 已经有一个请求了。

但我还能如何从 Telegram 机器人那里获取数据呢?

你可以为每个终端创建频道。或者创建群组,你可以自己想办法。将你的机器人添加为领导者。从频道中收集频道图标,并将它们放入一个数组。然后,当你收到信号时,你就在数组中运行,向所有频道发送信息。然后,你就会像处理一个频道那样捕捉更新。只有每个终端读取自己的频道。

虽然我自己还没有试过)。

 
Yevhenii Levchenko:


不过我自己还没试过这种方式)。

说得真好 )).不过还是谢谢你,我会思考、挖掘、尝试的

 
Sergey Kasirenko:

亲爱的论坛成员,请告诉我如何解决这个问题

{"ok":false, "error_code":409, "description": "Conflict: terminated by other getUpdates request; make sure that only one bot instance is running"} 谁遇到过这种情况?从哪里查?

你的机器人逻辑有问题。

我有多个副本在运行,每秒都有更新,没有冲突。这与群组/频道无关。

给我一些反馈。

 
Andrey Khatimlianskii:

你的机器人逻辑中存在某种错误。

我有许多副本在运行,每秒都在更新,没有任何冲突。这与群组/频道无关。

给我一些反馈。

感谢您的回复。我按照 Andrey Voitenko 的文章所述做了。我创建了一个机器人,通过令牌绑定了这个机器人的消息,并使用函数getUpdates 获取消息:

//+------------------------------------------------------------------+
//| OnTimer|
//+------------------------------------------------------------------+
void OnTimer()
  {
//--- 显示错误信息 结束 退出
   if(getme_result!=0)
     {
      comment.SetText(0,"Error: "+GetErrorDescription(getme_result),clrRed);
      if(getme_result==4060) comment.SetText(1,"https://api.telegram.org",clrRed);
      comment.Show();
      return;
     }
//--- 显示机器人名称
   //Comment("Bot name: ",bot.Name());
   if(Flag_Init)
   {
     Flag_Init=false;
     bot.UserNameFilter(sName);
     comment.SetText(0,StringFormat("%s v.%s",EXPERT_NAME,EXPERT_VERSION),clrWhite);
     //comment.SetText(1, "机器人名称: "+bot.Name(),clrWhite);
     comment.Show();
   }  
//--- 读取信息
   bot.GetUpdates();
//--- 处理信息
   //bot.ProcessMessages();
  }
//+------------------------------------------------------------------+

事实证明,只要我把这个机器人的两个副本(为了实验的简便性,现在是在同一个终端)放在一起,就会得到这顶帽子:

我明白了,原来你不能用相同的令牌调用调查,因为读取一次后,它就标志着数据已收到,下一份机器人就会出现这个错误。

但如何以不同的方式组织它,我不知道,也许你已经做了不同的方式,然后分享秘密,如果它不是商业秘密的话

 
Sergey Kasirenko:

但如何以不同的方式组织这一切,我就不知道了,也许你的做法与众不同,如果这不是商业秘密,那就分享一下吧

当然是商业秘密 )

我给你写了一封私人信件

 

晚上好,同事们。

请问如何在信息文本中添加表情符号?

 
Andrey Kaunov:

晚上好,各位同事。

请问如何在信息文本中添加表情符号?

一个真正的男人需要一辆摩托车和一个女人)。

再次禁言,好的。