Pazar Duyarlılığını Analiz Etmek için Node.js Twitter botu oluşturma
Tweet akışı yaparak ve filtreler uygulayarak piyasa duyarlılığını analiz eden Node.js tabanlı bir Twitter botunun nasıl oluşturulacağını öğrenelim!
giriiş
Twitter, görüşlerin, haberlerin ve fikirlerin paylaşıldığı popüler bir platform olmuştur. Ayrıca, özellikle çeşitli kripto para birimleri ve finansal araçlar için piyasa duyarlılığını anlamak söz konusu olduğunda, duyarlılık analizi yapmak için değerli bir veri kaynağı olabilir.
Bu öğreticide, tweet'leri akıtan ve hashtag'ler ve para birimi simgeleri (ör. #defi veya $BTC) listesine göre filtreleyen Node.js tabanlı bir Twitter Botu oluşturma sürecinde size yol göstereceğiz. Bot, bir duyarlılık analizi API'si kullanarak tweetlerin duyarlılığını analiz edecek.
Önkoşullar
- Twitter API anahtarlarına erişimi olan bir Twitter Developer hesabı
- Node.js (>=14.x) yüklü
Adım adım rehber
1. Adım: Projenizi ayarlama
- Botunuz için yeni bir dizin oluşturun:
mkdir twitter-market-sentiment-bot
cd twitter-market-sentiment-bot
npm init - yes
npm install axios
3. Adım: Twitter API'sini ayarlama
- Proje dizininizde `twitter-api.js` adlı bir dosya oluşturun
2. Aşağıdaki kodu dosyaya yerleştirin:
const axios = require('axios');
const api_key = 'YOUR_API_KEY';
const api_secret_key = 'YOUR_SECRET_KEY';
async function getBearerToken() {
const headers = {
'Authorization': `Basic ${Buffer.from(`${api_key}:${api_secret_key}`).toString('base64')}`,
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
};
const response = await axios.post('https://api.twitter.com/oauth2/token', 'grant_type=client_credentials', { headers });
return response.data.access_token;
}
module.exports = {
getBearerToken,
};
- Proje dizininde `market-santiment.js` adlı bir dosya oluşturun
2. Aşağıdaki kodu dosyaya yerleştirin:
const axios = require('axios');
async function analyzeSentiment(text) {
try {
// Replace the below URL with a sentiment analysis API of your choice
const sentimentApiUrl = 'https://sentim-api.sample.com/api/v2.0/';
const response = await axios.post(sentimentApiUrl, { text });
return response.data;
} catch (error) {
console.error(`Error analyzing sentiment: ${error}`);
}
}
module.exports = analyzeSentiment;
- Proje dizininde `index.js` adlı bir dosya oluşturun
2. Aşağıdaki kodu dosyaya yerleştirin: - Botu başlatın (bu komutu bash terminalinizde çalıştırın):
const { getBearerToken } = require('./twitter-api');
const analyzeSentiment = require('./market-sentiment');
const axios = require('axios');
const filters = [
'#defi',
'$BTC',
// Add more filters here
];
async function processStream(stream) {
for await (const chunk of stream) {
try {
const text = JSON.parse(chunk.toString()).data.text;
const sentiment = await analyzeSentiment(text);
console.log(`Text: ${text}\nSentiment: ${sentiment}\n\n`);
} catch (error) {
console.error(`Error processing stream data: ${error}`);
}
}
}
(async () => {
const token = await getBearerToken();
const url = 'https://api.twitter.com/2/tweets/search/stream';
const headers = { 'Authorization': `Bearer ${token}` };
// Use filtered-stream API
const rules = filters.map(filter => ({ "value": filter }));
await axios.post(`${url}/rules`, { "add": rules }, { headers });
// Start processing
const stream = await axios({ url, headers, responseType: 'stream' });
processStream(stream.data); })();
node index.js
SideKick ekibi ve geliştiricilerle bağlantıda kalmak için sosyal ağlarımıza katılın!