Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Допилить код отправки в Telergam, Excel-VBA + Telegram API
 
Цитата
Все_просто написал:
Готов взяться.
Пишу заказчику.
В работе

Изменено: Все_просто  - 4 Авг 2017 13:09:46


С уважением,
Федор/Все_просто
Работа выполнена в заявленный срок.  :)
Оплачена.
Рекомендую адресовать заказы на разработку к Федор/Все_просто

С уважением,
Допилить код отправки в Telergam, Excel-VBA + Telegram API
 
Надо
1) Исправить код, чтобы работал метод sendPhoto (telegram API)
2) Сделать, чтобы в методе sendmessage (telegram API) нормально поддерживался русский текст, перенос строки и табуляция
Код
Dim oHttp As Object
Dim URL, sFile, frmData As String
Const Boundary As String = "-----------aaa----------------"

sFile = "c:\Temp\pic.JPG"
token = "237895699:AAGGCZ1_XH5dNQTBCKcJOFajSW5999999999" 'not real
chat_id = "11111111"   'not real
sTxt = "hello"
'URI = "https://api.telegram.org/bot237895699:AAGGCZ1_XH5dNQTBCKcJOFajSW5999999999/sendmessage?chat_id=11111111&text="  & sTXT ' --> 'это ок
'URI = "https://api.telegram.org/bot237895699:AAGGCZ1_XH5dNQTBCKcJOFajSW5999999999/sendmessage?chat_id=11111111&text=" & sTXT & vbNewLine & sTXT ' --> 'это не ок

URL = "https://api.telegram.org/bot" & token & "/sendphoto?chat_id=" & chat_id

Set oHttp = CreateObject("Msxml2.ServerXMLHTTP")

oHttp.Open "POST", URL, False
oHttp.setRequestHeader "cache-control", "no-cache"
oHttp.setRequestHeader "Content-Type", "multipart/form-data"

frmData = Boundary & vbNewLine & _
"Content-Disposition: multipart/form-data; name=""sendPhoto""; filename=""" & sFile & """" & vbNewLine & _
"Content-Type: application/octet-stream" & vbNewLine & Boundary

MsgBox URL & vbNewLine & sPostData, vbInformation, "request"

oHttp.send frmData

MsgBox oHttp.responseText, vbInformation, "answer from tlg API"
Set oHttp = Nothing
Как сделать отправку в Telegram из макроса VBA Excel, Telegram из макроса VBA Excel
 
В теории просто - составить URL и вбить в браузер (симулировать в VBA использование объекта браузер или MSXML.XMLHTTPRequest, как в макросе выше).
Метод Telergam API в макросе getUpdates работает нормально. Метод sendMessage тоже - текстовые сообщения на латинице отправляет.

Но метод sendPhoto не получается...
sURI = "https://api.telegram.org/bot000000000:Aa.....AaAa/sendphoto?chat_id=88888888@photo=C:\temp\pic.png"

Какая верная URL? Как правильно указать параметры и имя файла?
уже все варианты перепробовал...
C:\temp\pic.png
file:///c:\temp\pic.png

Есть пример рабочей строки? Синтаксис там сложный, где-нибудь кавычки или другой символ не поставил и ..... короче, долго ковыряться можно

Заранее благодарю, если ответ найдется  :)

PS
скриншот области на листе - отдельная задача. Excel 2010 буфер обмена в картинку не сохраняет. Есть вариант сохранять через диаграмму, но вроде криво работает.... Или есть другие решения?
Как сделать отправку в Telegram из макроса VBA Excel, Telegram из макроса VBA Excel
 
В принципе, бот работает просто: посылаешь в браузере строку типа адрес + токен + id чата + команда.
  1. Создаёшь нового бота со смартфона через @FatherBot
  2. От присылает токен типа "000000000:AaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAa"
  3. Посылаешь в браузере команду вида https://api.telegram.org/bot000000000:AaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAa/getupdates и изнаёшь свой chat_id
  4. Посылаешь ...../sendmessage?chat_id=88888888&text=hello - и получаешь первое сообщение. Ура!
  5. Очень удобно! Сотрудник обновил расчеты на листе, а руководителю (мне) прилетели итоги на смартфон в telegram
В примере работающий макрос.
Но пока только текст. И только латиница.
Достаточно подставить свой токен и chat_id. И облагородить по желанию, чтобы текст сообщения брался из нужных ячеек листа, а токен и chat_id из текстовых констант.

Кто знает как составить URL в виде формате multipart/form-data для отправки фото (прикрепления файлов)?

формат команд /sendDocument, /sendPhoto, /sendAudio здесь -  Telegram Bot API
Код
Sub Send_to_Telegram_Bot_example()
Dim oHttp As Object
Dim sURI As String

'token = "00000000:AaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAa"
'chat_id = "88888888"
'txt = "hello"

'sURI = "https://api.telegram.org/bot000000000:Aa....AaAa/getme"
'sURI = "https://api.telegram.org/bot000000000:Aa....AaAa/getupdates"

'sendproto не работает!!! Блин, не знаю, как скормить строке имя файла С:\temp\pic.png?
'запрос с файлом должен быть в формате multipart/form-data
'sURI = "https://api.telegram.org/bot000000000:Aa.....AaAa/sendproto?chat_id=88888888@photo=C:\temp\pic.png"

sURI = "https://api.telegram.org/bot000000000:Aa....AaAa/sendmessage?chat_id=88888888&text=hello"

MsgBox sURI, vbInformation, "запрос"
On Error Resume Next
Set oHttp = CreateObject("MSXML2.XMLHTTP")
If Err.Number <> 0 Then
Set oHttp = CreateObject("MSXML.XMLHTTPRequest")
End If
On Error GoTo 0
If oHttp Is Nothing Then Exit Sub
oHttp.Open "GET", sURI, False
oHttp.Send
MsgBox oHttp.ResponseText, vbInformation, "ответ"
Set oHttp = Nothing
End Sub
Как сделать отправку в Telegram из макроса VBA Excel, Telegram из макроса VBA Excel
 
Встречал на просторах сети решения из python и даже из 1С.
Надеюсь, из VBA Excel тоже найдется...:)
Как сделать отправку в Telegram из макроса VBA Excel, Telegram из макроса VBA Excel
 
Добрый день

Как сделать отправку в Telegram из макроса VBA Excel?
Выборка повторяющихся наборов данных
 
Коллеги, я решил по другому,
каждому товару присваивается дополнительный код 1,2,4,8,16 и т.д.

Далее сумма по накладной - получаем контрольную сумму набора, например 2+4+8=14
Далее любая сводная по контрольной сумме

Способ хороший, но есть ограничения при 1024 артикулах код достигает предельного максимального числа, которое excel поддерживает
Выборка повторяющихся наборов данных
 
Андрей VG, спасибо!!!
Сейчас буду проверять :)
Выборка повторяющихся наборов данных
 
В имя добавил нужные буквы  :)
Файл-пример приложил
Выборка повторяющихся наборов данных
 
Коллеги, есть идеи по реализации такой задачи?

Дано: список товаров: яблоки, груши, сливы, виноград и т.д. более 1000 значений
Дано: список покупателей: Маша, Петя, Коля и т.д. более 10000 значений
Дано: список продаж:
Маша: яблоки, груши, сливы
Петя: яблоки, виноград
Коля: груши, сливы, яблоки

ЗАДАЧА:
найти список покупателей, выбирающих одинаковый набор покупок. Например: Маша, Коля (яблоки, груши, сливы)
Страницы: 1
Наверх