Mini App For Telegram

пишу код для mini app, выдает ошибку 415

Что хочу сделать: Взять с помощью window.Telegram.WebApp user_id пользователя и отправить его во flask для обработки и вывода данных

JavaScript and Flask

const tg = window.Telegram.WebApp.ready();

const userId = Telegram.WebApp.initDataUnsafe.userId;
console.log(userId)

//$.ajax({ url: '/get-user-id', method: 'POST', data: { "user_id": 123456789, "name": "tester" }});

fetch('/get-user-id', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({"user_id": 12345})
})
.then(response => {
  if (response.status === 200) {
    return response.json();
  } else {
    throw new Error('Ошибка сервера');
  }
})
.then(data => {
  console.log(data);
})
.catch(error => {
  console.error('Error:', error);
});

flask:

from flask import Flask, request

app = Flask(__name__)

@app.route('/get-user-id', methods=['GET', 'POST'])
def get_user_id():
  user_id = request.json['user_id']
  print(f'Получен user_id: {user_id}')

  # Здесь вы можете сохранить user_id в базе данных или выполнить другие действия.

  return {'status': 'ok'}

if __name__ == '__main__':
  app.run(debug=True)

Но почему-то не выходит, пробовал и $.ajax и fetch

Помогите пожалуйста.


Ответы (1 шт):

Автор решения: IvanProkshin

А у вас срабатывает print(f'Получен user_id: {user_id}')? Если да, то возможно вам стоит попробовать возвращать из get_user_id не словарь, а строку? и можете ли вы приложить полную трассировку стека flask? (Пишу в ответе т.к у меня всего 40 репутации, надеюсь перенаправит в комментарии)

→ Ссылка