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 репутации, надеюсь перенаправит в комментарии)