Pazar Duyarlılığını Analiz Etmek için Node.js Twitter botu oluşturma

May 10 2023
Tweet akışı yaparak ve filtreler uygulayarak piyasa duyarlılığını analiz eden Node.js tabanlı bir Twitter botunun nasıl oluşturulacağını öğrenelim! Giriş Twitter, fikirlerin, haberlerin ve fikirlerin paylaşıldığı popüler bir platform olmuştur.

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

  1. Botunuz için yeni bir dizin oluşturun:
  2. mkdir twitter-market-sentiment-bot
    cd twitter-market-sentiment-bot
    

    npm init - yes
    

    npm install axios
    

3. Adım: Twitter API'sini ayarlama

  1. Proje dizininizde `twitter-api.js` adlı bir dosya oluşturun
    2. Aşağıdaki kodu dosyaya yerleştirin:
  2. 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,
    };
    

  1. Proje dizininde `market-santiment.js` adlı bir dosya oluşturun
    2. Aşağıdaki kodu dosyaya yerleştirin:
  2. 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;
    

  1. Proje dizininde `index.js` adlı bir dosya oluşturun
    2. Aşağıdaki kodu dosyaya yerleştirin:
  2. 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); })();
    

  3. Botu başlatın (bu komutu bash terminalinizde çalıştırın):
  4. node index.js
    

SideKick ekibi ve geliştiricilerle bağlantıda kalmak için sosyal ağlarımıza katılın!