передача текста / строки в URL-адресе бота-телеграммы с помощью python - PullRequest
0 голосов
/ 25 мая 2018

Я хочу выбрать данные с веб-сайта, и мне нужно отправить их на бот telegram в виде сообщения. Я могу отправить текстовое сообщение "Hello" на бот telegram с помощью pyhton кода:

r = requests.get('https://api.telegram.org/botXXXXtokenXXXX/sendMessage?chat_id=XXXXXXXX&text=hello)
* 1004.* но я хочу передать переменную строку (str1 в коде) вместо статического текстового сообщения.Следовательно, какие изменения мне нужно сделать?

Мой код:

import requests
response1 = requests.get('https://coindelta.com/api/v1/public/getticker/')
lines = []
for line in response1.text:
    lines.append(line)
str1 = ''.join(lines)
r = requests.get('https://api.telegram.org/botXXXXtokenXXXX/sendMessage?chat_id=XXXXXXXX&text=hello)

1 Ответ

0 голосов
/ 25 мая 2018

Некоторые мысли и улучшения:

  1. Более понятно и читабельно использовать POST для отправки сообщений ботам
  2. Поскольку вы получаете JSON от https://coindelta.com,, выможно использовать json() для перебора данных в ответе.
  3. Вы можете использовать понимание списка для форматирования данных из ответа.
  4. Я установил разделитель \n в str1.Я думаю, что это более читабельно.

Рабочий пример:

import requests

USER_ID = 12345678900000  # this is your chat_id: int
BOT_TOKEN = 'botXXXXtokenXXXX'  # your bot token: str 

# getting data from coindelta.com
r = requests.get('https://coindelta.com/api/v1/public/getticker/')
str1 = '\n'.join([str(line) for line in r.json()])  # desired formatted string

# sending message to user
url = 'https://api.telegram.org/{}/sendMessage'.format(BOT_TOKEN)
post_data = {"chat_id": USER_ID, "text": str1}
tg_req = requests.post(url, data=post_data)
...