Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
twitter-v2
Advanced tools
An asynchronous client library for the Twitter REST and Streaming V2 API's.
An asynchronous client library for the Twitter REST and Streaming V2 API's.
const Twitter = require('twitter-v2');
const client = new Twitter({
consumer_key: '',
consumer_secret: '',
access_token_key: '',
access_token_secret: '',
});
const { data } = await client.get('tweets', { ids: '1228393702244134912' });
console.log(data);
npm install twitter-v2
You will need valid Twitter developer credentials in the form of a set of consumer keys. You can get early access V2 keys here.
User authentication requires your app's consumer keys and access tokens obtained from oauth 1.0a.
const client = new Twitter({
consumer_key: '',
consumer_secret: '',
access_token_key: '',
access_token_secret: '',
});
Alternatively, app authentication (which can only access public data but is often suitable for server applications) only needs your app's consumer keys and/or bearer token.
const client = new Twitter({
consumer_key: '',
consumer_secret: '',
});
or
const client = new Twitter({
bearer_token: '',
});
You can make GET, POST, and DELETE requests against the REST API via the convenience methods.
client.get(path, urlParams);
client.post(path, body, urlParams);
client.delete(path, urlParams);
The REST API convenience methods return Promises.
Use the streaming convenience methods for any stream APIs.
client.stream(path, urlParams);
The Streaming API will return an async iterator with the convenience method close()
.
Ensure that you call close()
when done with a stream, otherwise it will
continue to download content from Twitter in the background.
const stream = client.stream(path, urlParams);
// Close the stream after 30s.
setTimeout(() => {
stream.close();
}, 30000);
for await (const { data } of stream) {
console.log(data);
}
Note that reconnect logic is not handled by this package, you're responsible for implementing it based on the needs of your application. The stream will close itself in two cases:
TwitterError
will be thrown.If you wish to continuously listen to a stream, you'll need to handle both of these cases. For example:
async function listenForever(streamFactory, dataConsumer) {
try {
for await (const { data } of streamFactory()) {
dataConsumer(data);
}
// The stream has been closed by Twitter. It is usually safe to reconnect.
console.log('Stream disconnected healthily. Reconnecting.');
listenForever(streamFactory, dataConsumer);
} catch (error) {
// An error occurred so we reconnect to the stream. Note that we should
// probably have retry logic here to prevent reconnection after a number of
// closely timed failures (may indicate a problem that is not downstream).
console.warn('Stream disconnected with error. Retrying.', error);
listenForever(streamFactory, dataConsumer);
}
}
listenForever(
() => client.stream('tweets/search/stream'),
(data) => console.log(data)
);
This module does not support previous versions of the Twitter API, however it works well with the following V1.1 modules
FAQs
An asynchronous client library for the Twitter REST and Streaming V2 API's.
The npm package twitter-v2 receives a total of 294 weekly downloads. As such, twitter-v2 popularity was classified as not popular.
We found that twitter-v2 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.