การสร้างบอท Twitter ของ Node.js เพื่อวิเคราะห์ความคิดเห็นของตลาด

May 10 2023
มาเรียนรู้วิธีสร้างบอท Twitter บน Node.js ซึ่งจะวิเคราะห์อารมณ์ตลาดด้วยการสตรีมทวีตและใช้ตัวกรอง! บทนำ Twitter เป็นแพลตฟอร์มยอดนิยมสำหรับการแบ่งปันความคิดเห็น ข่าวสาร และแนวคิดต่างๆ

มาเรียนรู้วิธีสร้างบอท Twitter บน Node.js ซึ่งจะวิเคราะห์อารมณ์ตลาดด้วยการสตรีมทวีตและใช้ตัวกรอง!

การแนะนำ

Twitter เป็นแพลตฟอร์มยอดนิยมสำหรับการแบ่งปันความคิดเห็น ข่าวสาร และแนวคิดต่างๆ นอกจากนี้ยังสามารถเป็นแหล่งข้อมูลที่มีค่าสำหรับการวิเคราะห์ความเชื่อมั่น โดยเฉพาะอย่างยิ่งเมื่อต้องทำความเข้าใจกับความเชื่อมั่นของตลาดสำหรับ cryptocurrencies และเครื่องมือทางการเงินต่างๆ

ในบทช่วยสอนนี้ เราจะแนะนำคุณเกี่ยวกับขั้นตอนการสร้าง Twitter Bot บน Node.js ซึ่งจะสตรีมทวีตและกรองทวีตตามรายการแฮชแท็กและสัญลักษณ์สกุลเงิน (เช่น #defi หรือ $BTC) บอทจะวิเคราะห์ความรู้สึกของทวีตโดยใช้ API การวิเคราะห์ความคิดเห็น

ข้อกำหนดเบื้องต้น

- บัญชี Twitter Developer ที่สามารถเข้าถึงคีย์ Twitter API
- ติดตั้ง Node.js (>=14.x)

คำแนะนำทีละขั้นตอน

ขั้นตอนที่ 1: ตั้งค่าโครงการของคุณ

  1. สร้างไดเร็กทอรีใหม่สำหรับบอทของคุณ:
  2. mkdir twitter-market-sentiment-bot
    cd twitter-market-sentiment-bot
    

    npm init - yes
    

    npm install axios
    

ขั้นตอนที่ 3: ตั้งค่า Twitter API

  1. ในไดเร็กทอรีโปรเจ็กต์ของคุณ ให้สร้างไฟล์ชื่อ `twitter-api.js`
    2. วางโค้ดต่อไปนี้ลงในไฟล์:
  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. ในไดเร็กทอรีโครงการ ให้สร้างไฟล์ชื่อ `market-sentiment.js`
    2. วางโค้ดต่อไปนี้ลงในไฟล์:
  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. ในไดเร็กทอรีโปรเจ็กต์ สร้างไฟล์ชื่อ `index.js`
    2. วางโค้ดต่อไปนี้ลงในไฟล์:
  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. เริ่มบอท (เรียกใช้คำสั่งนี้ในเทอร์มินัล bash ของคุณ):
  4. node index.js
    

เข้าร่วมโซเชียลของเราเพื่อติดต่อกับทีม SideKick และนักพัฒนา!