小编Cri*_*n T的帖子

使用Telegram bot检索所有聊天ID

主要问题是我如何获得与机器人进行的所有对话的聊天ID?

想象一下,在机器人执行期间,与用户A进行了对话.

现在我停止机器人进程并再次启动它.

如何获取与用户A过去聊天的聊天ID?

我知道当用户向您发送消息时您会收到聊天ID,并且您使用该ID进行回复,但是如果用户A在当前执行期间不再向僵尸程序发送消息,该怎么办?如何获得过去的会话ID?

是唯一一个存储id并在第二次执行开始时检索它们的选项吗?

更新:

看起来当前的解决方案是将聊天ID存储在安全的地方,正如@Tick Tock所回答的那样.

telegram-bot

8
推荐指数
1
解决办法
6338
查看次数

向所有 Telegram 机器人成员发送消息

我用 php 编写了一个电报机器人。我想给所有会员发短信,我保存了所有会员的chat_id。我尝试使用此功能发送消息:

function sendMessage($chatId, $message) {

    $url = WEBSITE . "/sendMessage?chat_id=" . $chatId . "&text=" . urlencode($message);
    file_get_contents($url);
}
Run Code Online (Sandbox Code Playgroud)

并使用此函数获取用户 chatid 并发送消息:

public function sendall($message) {
        $sql = $this->con->prepare('SELECT * FROM `users`');
        $sql->execute();
        $res = $sql->fetchAll();
        foreach ($res as $row) {
            sendMessage($row['chatid'], $message);
        }
        exit();
    }
Run Code Online (Sandbox Code Playgroud)

但这无法正常工作,该消息会多次发送给会员,并且直到我清除数据库后才会停止。

php telegram-bot

6
推荐指数
1
解决办法
8384
查看次数

SqlPackage.exe和MsBuild SqlPublishTask之间的差异

我正在尝试生成一个输出dacpac文件,然后我可以将其部署到不同的环境中.到目前为止,我使用目标发布直接从msbuild进行部署,例如:

msbuild dbproject.sqlproj /t:Build;Publish /p:SqlPublishProfilePath=test.publish.xml  /p:UpdateDatabase=True  /p:PublishScriptFileName=test.sql
Run Code Online (Sandbox Code Playgroud)

生成的输出脚本的大小(仅供参考,因为UpdateDatabase设置为true)为2.5MB.

我的新方法是只构建项目,存储dacpac然后使用sqlpackage进行部署,并执行"发布"操作.这个新方法报告了msbuild SqlPublishTask未报告的一些警告.
作为参考,我运行了下一个命令:

sqlpackage.exe /action:script /outputpath:test.sql /sourcefile:dbproject.dacpac /pr:test.publish.xml
Run Code Online (Sandbox Code Playgroud)

并且输出脚本的大小现在是4.9MB.
报告的具体警告不在此关注,关注的是脚本不同,我的问题是有什么区别的?
更重要的是哪一个是最好/最安全的部署方法?

sql-server msbuild sqlpackage

5
推荐指数
1
解决办法
843
查看次数

.net中泛型的实际使用(除了框架中的泛型)

我知道理论,它们很棒,框架中包含的那些简化了很多事情,甚至具有性能提升。
关于这个主题的答案很多,有很好的例子,但对我或框架中已经存在的例子通常没有什么实际价值。

问题是,在哪种情况下您决定编写自己的使用泛型的类?

.net generics

1
推荐指数
1
解决办法
1421
查看次数

标签 统计

telegram-bot ×2

.net ×1

generics ×1

msbuild ×1

php ×1

sql-server ×1

sqlpackage ×1