Estoy intentando enviar una https://developer.twitter.com/en/docs/twitter-api/users/lookup/api-reference/get-users-id api para obtener información del usuario, pero la respuesta siempre es
{ statusCode: 403, data: '{\n' + ' "title": "Unsupported Authentication",\n' + ' "detail": "Authenticating with Unknown is forbidden for this endpoint. Supported authentication types are [OAuth 1.0a User Context, OAuth 2.0 Application-Only, OAuth 2.0 User Context].",\n' + ' "type": "https://api.twitter.com/2/problems/unsupported-authentication",\n' + ' "status": 403\n' + '}' } Aunque he tenido con éxito oauth_access_token y oauth_access_secret como se describe en https://developer.twitter.com/en/docs/authentication/oauth-1-0a/obtaining-user-access-tokens A continuación se muestra mi fragmento de código para enviar el solicitud;
// server.js app.get('/api/twitter/temp/profile', async (req, res) =>{ const { oauth_access_token, oauth_access_token_secret } = access_tokens[tmp_token]; try { // const ids = req.query.ids.join() const ids = req.query.ids console.log("ids "+ids) console.log(oauth_access_token, oauth_access_token_secret) const response = await oauth.sendRequest({ method: 'get', url: `https://api.twitter.com/2/users?ids=${ids}`, oauth_access_token, oauth_access_token_secret }) console,log(response) res.json({message: 'ok'}) } catch (error) { console.log(error) } }) La biblioteca que usé para enviar la solicitud a Twitter (cuidando los encabezados, etc.) es https://github.com/ciaranj/node-oauth/blob/a7f8a1e21c362eb4ed2039431fb9ac2ae749f26a/lib/oauth.js#L486 , por lo que la autenticación en mi server.js es un contenedor de esa biblioteca, etc.