When I call this endpoint with my app-only bearer token, it works fine.

curl --location --request GET 'https://api.twitter.com/2/tweets/search/recent?query=test' \
--header 'Authorization: Bearer $TOKEN' \

But it doesn’t work for user token that I received from “/2/oauth2/token”. The response is:

{
    "title": "Forbidden",
    "type": "about:blank",
    "status": 403,
    "detail": "Forbidden"
}

What’s the problem?

I’ve granted with the scopes:
“scope”: “follows.read tweet.write like.write like.read tweet.read follows.write”