$data = $json.result | Select-Object -Last 1
If ($return.text -eq "B") {
$userdata = @{}
while(1) {
.....
if (-not $userdata.containskey($user_id)) { # Этот пользователь ещё не писал
$userdata[$user_id] = [pscustomobject]@{ data = '12345'; data2 = 'lalala'} # инициализация
}
...
if ($callback_data -eq 'want_answer') {
$userdata[$user_id].data2 = $user_pressed_key # Записали что-нибудь
$answer = $userdata[$user_id].data # Считали что-нибудь
sendMessage $user_id $answer
}
...
if ($return.text) {
> $result = Invoke-RestMethod "https://api.telegram.org/bot$code/getUpdates"
> $result.result
update_id message
--------- -------
224433664 @{message_id=1122; from=; chat=; date=1670697880; text=qqq}
224433665 @{message_id=1123; from=; chat=; date=1670697881; text=aaa}
#If button has been pressed
elseif ($return.callback_data) {
не понятно, но если где-то в нём есть ещё раз getUpdates, то именно здесь у вас и косяк. потому что при получении обновлений сообщения приходят от разных пользователей и lastmsgid может оказаться не от того пользователя.while(1) {
$computer = Read-Host("Введите имя компьютера")
if (Test-Connection $computer -count 1 -quiet) {
$computerDrives = Get-WmiObject -Class MSFT_PhysicalDisk -Namespace "root\Microsoft\Windows\Storage" -Computer $computer
$computerOS = get-wmiobject Win32_OperatingSystem -Computer $Computer
if ($computerOS.Version -notlike "6.*") {
$computerDrives | Select @{n = 'Диск'; e = { $_.FriendlyName } }, @{n = 'Объём ГБ'; e = { [math]::Round($_.Size / 1GB) } } | Format-Table
}
Write-Host ("ОС: " + $computerOS.caption + ", Service Pack: " + $computerOS.ServicePackMajorVersion)
Write-Host "конец`n"
}
}
$row1 = @($buttonsubcheck, $buttonsubtrial)
$row2 = @($buttonsubback)
$buttonssub = ($row1, $row2)
Invoke-WebRequest -Method Post -Body ((@{text='test'; chat_id=$chat_id; parse_mode = "Markdown"; reply_markup = @{"inline_keyboard" = $buttonssub } } | ConvertTo-Json -Depth 10)) -Uri $uri -ContentType 'application/json; charset=utf-8'
{
"reply_markup": {
"inline_keyboard": [
[
{
"text": "Check status",
"callback_data": "substatus"
},
{
"text": "Request trial",
"callback_data": "subtrial"
}
],
[
{
"text": "Back",
"callback_data": "back"
}
]
]
},
"chat_id": $chat_id,
"text": "test",
"parse_mode": "Markdown"
}
ВМЕСТО вашего пароля вводите пароль приложения
по вашей же ссылке написано