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.)