Задать вопрос
Treimox
@Treimox

Как отправить json информацию в боте ВК?

В общем, я использую api одного проекта, позволяющего получать информацию аккаунта из игры. Я в принципе всё настроил и при вводе команды - мне выдаётся json-информация об аккаунте, но почему-то бот её не отправляет мне в личку ВК, он просто как будто не видит остальной кусок кода, что делать?

P.S - я понимаю, что код отправки в комментарий засунут, но он всё равно не рабочий.

Код бота:
import vk_api
import json
from prikol import get_player_info
from vk_api.longpoll import VkLongPoll, VkEventType

# VK BOT
vk_session = vk_api.VkApi(token=TOKEN)
longpoll = VkLongPoll(vk_session)
vk = vk_session.get_api()
for event in longpoll.listen():


	if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text:
		
		nickname = event.text.split()[1]
		serverN = event.text.split()[2]
		info = get_player_info(nickname, serverN)

		with open('stats.json', 'r') as f:
			data = json.loads(f.read())
			stats = data['accountId']
			print(stats)
#
#		if event.text == '/find' and nickname and serverN: #Если написали заданную фразу
#			if event.from_user: #Если написали в ЛC
#
#				vk.messages.send( #Отправляем сообщение
#					user_id=event.user_id,
#					message=stats,
#					random_id = 0
#				)
#
#
#			elif event.from_chat: #Если написали в Беседе
#				vk.messages.send( #Отправляем собщение
#					chat_id=event.chat_id,
#					message="True",
#					random_id = 0
#				)


Код API:
import requests
import json
api_url = 'https://api.vprikol.dev/find/'
api_token = 'token'

# API PRIKOL
def create_task(nick, server):
	response = requests.post(api_url + 'createTask',
						params={'token': api_token,
								'nick': nick,
								'server': server}).json()
	return response['request_id']


def get_task_result(task_id):
	while True:
		response = requests.get(api_url + 'getTaskResult',
								params={'request_id': task_id})
		if response.status_code in [200, 422]:
			return response.json()
		elif response.status_code >= 500:
			raise Exception('API exception')


def get_player_info(nick, server):
	task_id = create_task(nick, server)
	result = get_task_result(task_id)
	print(result)
	with open('stats.json', 'w') as f:
		json.dump(result, f)
  • Вопрос задан
  • 175 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
@o5a
В сообщении передаете текст вида '/команда ник сервер' т.е. например '/find n4g1b4t0r 31337',
а затем делаете такую проверку:
if event.text == '/find'
Не находите противоречий?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы