Github 작업을 사용하여 트윗 보내기
9030 단어 automationnodegithub
시간 기반 작업을 실행하려면 사용 가능한 가장 일반적인 솔루션은 cron(또는 cron 작업)이지만 이러한 작업을 예약하고 실행할 서버가 필요합니다. 서버 설정은 하루에 한 번만 트윗을 보내는 제 사용 사례에 비해 너무 많은 작업이었기 때문에 차선책으로 선택했습니다: Github Actions . Github Actions는 주로 다양한 Github 이벤트 또는 cron 일정을 기반으로 실행할 작업을 설정하는 CI/CD에 사용됩니다. 제한된 사용을 위해 매일 정확히 하나의 트윗을 보내도록 작업을 예약할 수 있으며 무료 사용 제한 내에 있기 때문에 비용이 들지 않습니다.
나는 실행할 때 내가 계정을 비활성화할 계획인 10월 25일까지의 일 수를 계산하는 메시지가 포함된 트윗을 보내는 Node.js 스크립트를 작성했습니다.
const Twit = require('twit');
const {
CONSUMER_KEY,
CONSUMER_SECRET,
ACCESS_TOKEN,
ACCESS_TOKEN_SECRET,
} = process.env;
const T = new Twit({
consumer_key: CONSUMER_KEY,
consumer_secret: CONSUMER_SECRET,
access_token: ACCESS_TOKEN,
access_token_secret: ACCESS_TOKEN_SECRET,
});
const daysToDeletion = 25 - new Date().getDate();
const message = `👋 Hey there folks!.
This is an automated message 🤖 to remind you that this account has been renamed to @_skippednote and will be deactivated in the next ${daysToDeletion} days.
I've moved to @skippednote, you can come follow me there ♥️`;
(async function main() {
try {
await T.post('statuses/update', { status: message });
console.log('Successfully posted the tweet!');
} catch (e) {
console.log('Failed to post the tweet!');
console.log(e.message);
}
})();
저는 Twitter v1.1 API와 함께 사용하고 약속 및 콜백 기반 메서드를 모두 지원하는 Twit 노드 모듈을 사용하고 있습니다. 여기서 흥미로운 점은 환경 변수가 정의되는 방법과 위치입니다. 그러면 보안 위험이 되기 때문에 파일에 넣지 않습니다. 다른 CI/CD 시스템과 마찬가지로 Github Actions를 사용하면 리포지토리 설정을 통해 비밀(환경 변수)을 추가할 수 있습니다.
Github 작업을 설정하려면 리포지토리 루트에
.github
디렉토리를 생성해야 하며 그 안에 다양한 Github 작업을 기반으로 실행될 작업이 포함된 workflows
디렉토리를 생성합니다. .github/workflows
디렉토리 아래의 파일 이름은 yaml 파일인 한 중요하지 않습니다. 우리의 경우 작업이 일정에 따라 실행되기를 원하므로 이름을 .github/workflows/cronjob.yml
로 지정했습니다.name: Twitter message
on:
schedule:
- cron: '15 6 * * *'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v1
with:
node_version: '12'
- name: Install Node modules
run: npm i
- name: Tweet message
run: node tweet.js
env:
CONSUMER_KEY: ${{ secrets.CONSUMER_KEY }}
CONSUMER_SECRET: ${{ secrets.CONSUMER_SECRET }}
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
ACCESS_TOKEN_SECRET: ${{ secrets.ACCESS_TOKEN_SECRET }}
Github 작업 페이지에
name
속성이 표시되어 작업을 쉽게 찾을 수 있습니다. 우리는 이것을 Twitter 메시지라고 불렀기 때문에 왼쪽 사이드바의 아래 스크린샷에서 같은 이름의 워크플로가 있음을 볼 수 있습니다.on
키를 누르면 cron 일정에 따라 작업을 실행할 수 있습니다. 우리는 매일 오전 6시 15분에 한 번 Github 작업을 실행하기까지 합니다. Github Actions는 UTC 시간대를 사용하도록 구성되어 있다는 점에 유의해야 합니다.파일의
job
섹션에서 최신 Ubuntu 릴리스를 사용하도록 환경을 설정한 다음 사전 구성 작업을 사용하여 다음을 수행합니다.env
를 사용하여 작업에 노출하고 있습니다.빌드가 실행되면 생성된 메시지와 함께 트윗이 전송됩니다.
Reference
이 문제에 관하여(Github 작업을 사용하여 트윗 보내기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/skippednote/using-github-actions-to-send-tweets-1n8d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)