VK API в ExpressJS - узнать статус пользователя

Всем привет! Мне нужно на ExpressJS реализовать следующую возможность: при переходе на страницу /vkstatus?user_id=1234 вывести на странице текст из статуса пользователя ВКонтакте с переданным user_id, равным 1234.

app.get("/vkstatus", (req, res) => {
    https.get(`https://oauth.vk.com/access_token?client_id=${process.env.VK_APP_ID}&client_secret=${process.env.VK_SERVICE_KEY}&v=5.131&grant_type=client_credentials`, (response) => {
        let data = "";
        response.on("data", chunck => {
            data += chunck;
        });
        response.on("end", () => {
            let parsedData = JSON.parse(data);

            https.get(`https://api.vk.com/method/status.get?user_id=${req.query.user_id}&access_token=${parsedData.access_token}&v=5.131`, r => {
                r.on("data", (d) => {
                    res.send(`${d}`);
                })
            })
        })
    })
})

При выполнении этого кода на странице отображается следующий ответ от сервера:

{"error":{"error_code":28,"error_msg":"Application authorization failed: access_token has expired.","request_params":[{"key":"user_id","value":"1234"},{"key":"v","value":"5.131"},{"key":"method","value":"status.get"},{"key":"oauth","value":"1"}]}}

Вместо ожидаемого (у меня включена трансляция музыки в статус, поэтому в поле response.text отображается название текущего трека, которое мне нужно отобразить в моем приложении на странице /vkstatus):

{
    "response": {
        "text": "Hans Zimmer — A Place Among the Stars",
        "audio": {
            "artist": "Hans Zimmer",
            "id": 77679312,
            "owner_id": -2001679312,
            "title": "A Place Among the Stars",
            "duration": 25,
            "is_explicit": false,
            "is_focus_track": false,
            "track_code": "8701bdaeHBEDnTHUNFHo6yTcYJ-Xo_53CNQ7epviZPast4so5K9leRSMNskvR4xSjyuVX1BlMrE9BCVMHEI",
            "url": "https://vk.com/mp3/audio_api_unavailable.mp3",
            "date": 1605013911,
            "main_artists": [
                {
                    "name": "Hans Zimmer",
                    "domain": "224569899951756387",
                    "id": "224569899951756387",
                    "is_followed": false,
                    "can_follow": false
                }
            ],
            "short_videos_allowed": false,
            "stories_allowed": false,
            "stories_cover_allowed": false
        }
    }
}

Вопрос: что я делаю не так, почему полученный ранее access_token ВК отказывается принимать при новом запросе? И что мне нужно сделать, чтобы отобразить на /vkstatus статус пользователя, полученный по VK API?

Мне необходимо придумать решение, работающее в бэкенде сайта (без авторизации конкретного пользователя на странице /vkstatus)

Буду благодарен за помощь!


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