arc.codes로 Twitter 봇 구축 ⚡️

10221 단어

소개



이 자습서에서는 arc.codes@scheduled 기능을 사용하여 일일 가격을 트윗하는 Twitter 봇을 만들 것입니다.

스택스는 비트코인의 보안, 자본 및 네트워크가 통합된 새로운 암호화폐로 앱, 스마트 계약 및 디지털 자산을 구축할 수 있습니다.

전제 조건


  • 승인된 Twitter 개발자 계정이 있어야 합니다.
  • AWS 계정.

  • You can clone the code for this project here: https://github.com/ShawnHosea/stacksbot



    1단계: Twitter 앱 만들기



    먼저 Twitter 개발자 계정을 설정하여 앱을 만들고 API 키에 대한 액세스 권한을 얻습니다.



    앱을 만들려면 다음 지침을 따르세요.
  • Developer Portal로 이동하여 클릭합니다.
  • 앱을 만들고 이름을 지정합니다.
  • App permissions로 스크롤하고 Read and Write로 변경합니다.
  • Keys and tokens 탭으로 이동하여 모든 API 키를 재생성합니다. 안전한 곳에 보관하십시오.

  • 2단계: Architect 앱 생성 및 환경 변수 추가



    이제 Architect 프로젝트를 만들 차례입니다. 우리는 Quickstart found on arc.codes을 따를 것입니다.

    mkdir twitterApp
    cd twitterApp
    arc init
    


    다음으로 다음 키를 포함하는 preferences.arc 파일을 만듭니다.
  • TWITTER_API_KEY
  • TWITTER_API_SECRET
  • TWITTER_ACCESS_TOKEN
  • TWITTER_ACCESS_TOKEN_SECRET

  • arc env CLI command을 사용하여 이러한 API 키를 동기화할 수 있습니다.

    다음은 preferences.arc 파일의 모양에 대한 예입니다.

    # The @env pragma is synced (and overwritten) by running arc env
    @env
    testing
      TWITTER_ACCESS_TOKEN something-for-testing
      TWITTER_ACCESS_TOKEN_SECRET something-for-testing
      TWITTER_API_KEY something-for-testing
      TWITTER_API_SECRET something-for-testing
    
    staging
      TWITTER_ACCESS_TOKEN something-for-staging
      TWITTER_ACCESS_TOKEN_SECRET something-for-staging
      TWITTER_API_KEY something-for-staging
      TWITTER_API_SECRET something-for-staging
    
    production
      TWITTER_ACCESS_TOKEN something-for-production
      TWITTER_ACCESS_TOKEN_SECRET something-for-production
      TWITTER_API_KEY something-for-production
      TWITTER_API_SECRET something-for-production
    


    3단계: 예약된 기능 만들기


    app.arc 파일 @scheduled pragma에 예약 함수를 추가하여 시작하십시오.

    @app
    init
    
    @static
    folder public
    
    @events
    
    @http
    get /
    
    # Scheduled function for once a day.
    @scheduled
    daily rate(1 day)
    
    # @aws
    # profile default
    # region us-west-1
    


  • Twitter API와 보다 원활하게 상호 작용하기 위해 를 사용할 예정입니다.
  • tiny-json-http을 사용하여 일일 예약 트윗에 사용할 데이터를 Coincap.com에서 가져옵니다.
  • cdsrc/scheduled/daily로 변경하여 위의 두 종속성을 설치하여 함수 내에서 사용할 수 있도록 합니다.
  • 이 코드를 src/scheduled/daily에 넣습니다.

  • const tiny = require('tiny-json-http')
    const { TwitterClient } = require('twitter-api-client')
    
    
    exports.handler = async function scheduled (event) {
    
      const twitterClient = new TwitterClient({
        apiKey: process.env.TWITTER_API_KEY,
        apiSecret: process.env.TWITTER_API_SECRET,
        accessToken: process.env.TWITTER_ACCESS_TOKEN,
        accessTokenSecret: process.env.TWITTER_ACCESS_TOKEN_SECRET
      })
    
      let url = `https://api.coincap.io/v2/assets/blockstack`
    
    
      const status = await tiny.get({url})
      .then(response => {
        let stx = response.body.data
        let tweet
        if (stx) {
          //tweet the $STX price
          tweet = 'Daily $STX price: ' + "\n" + "\n" + '$' + stx.priceUsd
        } 
        return tweet
      }).catch(err => {
        console.error(err)
      })
    
      console.log('Log2:', status)
    
      await twitterClient.tweets.statusesUpdate({
        status: status
      }).then(response => {
        console.log("Tweeted!", response)
      }).catch(err => {
        console.error(err)
      })
    
      console.log(JSON.stringify(event, null, 2))
    
      return 
    }
    


  • 먼저 twitter-api-client를 통해 로드된 API 키를 사용하여 Twitter 계정을 인증합니다.
  • 그런 다음 tiny-json-http를 사용하여 Coincap.io
  • 에서 $STX 데이터를 가져옵니다.
  • 계정이 인증되고 데이터가 로드되면 상태 업데이트를 트윗하기 위해 를 사용하여 트윗을 만듭니다.

  • 이 정확한 코드를 앱의 get /에 배치하여 함수가 작동하는지 확인하기 위해 이 코드를 테스트할 수 있습니다. 이 끝점으로 이동하면 Twitter 피드에 대한 상태 업데이트가 트리거됩니다.



    결론



    ArchitectBegin은 Twitter API와 인터페이스하기 위한 훌륭한 도구입니다. arc.codes와 Twitter API를 모두 탐색하여 어떤 종류의 봇을 만들 수 있는지 알아보시기 바랍니다!

    좋은 웹페이지 즐겨찾기