Как настроить вход на массаж, отправленный через запросы в Telegram Channel - PullRequest
0 голосов
/ 08 мая 2019

Я отправляю сообщение на Teleram Channel через библиотеку Requests, и мне нужно добавить Enter для лучшего форматирования в канале, и я использую \n в конце строк, но это не работает, есть идея для этого

Это мой код

import requests

def Telegram_channel (x):
    url = "https://api.telegram.org/bot<token>/sendMessage"
    data = {"chat_id":"-USER_id", "text":x}
    r = requests.post(url, json=data)


x = ">>>> length of Tv packs banned in Database : \n"

x = x,">>>> Torrent Link DB value ",torrent_link,'\n'

Telegram_channel (x)

, а результат:

>>>> length of Tv packs banned in Database  \n>>>> Torrent Link DB value \n

но так и должно быть

>>>> length of Tv packs banned in Database 

>>>> Torrent Link DB value

Ответы [ 2 ]

1 голос
/ 08 мая 2019

Вы фактически создаете tuple вместо str (который должен быть text JSON-параметр):

x = ">>>> length of Tv packs banned in Database : \n"
x = x,">>>> Torrent Link DB value ","torrent_link_text_here",'\n'
print(type(x))
print(x)

Выход:

<class 'tuple'>
('>>>> length of Tv packs banned in Database : \n', '>>>> Torrent Link DB value ', 'torrent_link_text_here', '\n')

Запросы lib не может правильно обработать его для создания HTTP-запроса, поэтому вы теряете разрывы строк.


Почему бы не использовать форматирование строки ?

import requests

url = "https://api.telegram.org/bot<TOKEN>/sendMessage"
torrent_link = "https://example.com"
x = ">>>> length of Tv packs banned in Database: \n>>>> Torrent Link DB value {}\n".format(torrent_link)

data = {"chat_id": <YOUR_CHAT_ID>, "text": x}
r = requests.post(url, json=data)

Вывод чата:

>>>> length of Tv packs banned in Database:  
>>>> Torrent Link DB value https://example.com
0 голосов
/ 08 мая 2019

Попробуйте ниже:

По сути, параметр, который вам нужно отправить в этом API, в параметрах запроса , и фактически вы отправляете их в теле, поэтому, пожалуйста, отправьте строку запроса и наслаждайтесь кодированием.

URL: https://api.telegram.org/bot[BOT_API_KEY]/sendMessage?chat_id=[MY_CHANNEL_NAME]&text=[MY_MESSAGE_TEXT]

МЕТОД: ПОЛУЧИТЬ где:

  • BOT_API_KEY - это ключ API, сгенерированный BotFather при создании твой бот
  • MY_CHANNEL_NAME - дескриптор вашего канала (например, @my_channel_name)
  • MY_MESSAGE_TEXT - это сообщение, которое вы хотите отправить (URL-кодировке)
...