트위터 API 및 재구성을 통한 소셜 미디어 경연 및 경품 관리
14894 단어 twitterjavascriptreshuffleopensource
그래서 만약에 당신의 마케팅팀이 트위터를 위해 훌륭한 홍보 활동을 설계하고 시청자들에게 댓글을 전송하여 놀라운 보상을 받을 기회를 얻도록 요구한다고 가정해 보세요.
다음 단계는 우승자를 선택하는 방법을 찾아내는 것이다.사용자가 입력하도록 요구하는 방식에 따라 몇 가지 방법으로 당신의 경품을 위해 이긴 사람을 선택할 수 있습니다.인터넷에는 많은 서비스가 있는데, 활동 추문 URL을 복사하고 붙여넣을 수 있으며, 사용자를 무작위로 선택할 수 있다.이런 방법은 틀림없이 효과가 있을 것이지만, 부정적인 영향을 가져올 수도 있다.가장 흔히 볼 수 있는 것은 이 서비스는 한 사용자의 조작(전송, 회답, 선호)을 구동하는 데만 한정된다는 것이다.
본 문서에서 저는 트위터 API를 사용하여 판촉 활동을 관리하는 방법을 보여 드리며 Reshuffle를 사용하여 모든 내용을 프로그래밍 방식으로 처리할 것입니다.포워딩에 중점을 두겠지만 Twitter API에서 제공하는 많은 엔드포인트를 사용하여 필요에 따라 쉽게 코드를 사용자 정의할 수 있습니다.
Reshuffle는 소스, 경량, 이벤트 구동 프레임워크로 서비스 통합을 도와줍니다. 이러한 통합과 작업 흐름은 Reshuffle 프로그램에서 만들어집니다.이러한 서비스와 상호작용을 할 수 있는 대상을 연결기라고 합니다.
선결 조건
Twitter API를 사용하려면 Twitter 개발자 계정이 필요합니다.이동하여 새 Twitter 응용 프로그램을 만듭니다.응용 프로그램이 승인되면 나중에 구성해야 하기 때문에 API 키와 API 기밀을 저장하십시오.API 키를 가져오려면 를 참조하십시오.
이 예에서는 전달자의 데이터를 PostgreSQL로 저장합니다.'Twitters' 라고 표시된 테이블이 필요합니다.' id '열은 키와 사용자 이름입니다.구성할 데이터베이스 URL을 준비합니다.다른 서비스 (예: Google Sheets) 로 데이터를 저장하는 것을 더 좋아한다면, 문서 here 를 보십시오.
어떻게 그것을 건조합니까
특정 트윗에 게시된 모든 전달에서 데이터를 가져오고 사용자의 사용자 이름과 트윗 ID를 데이터베이스에 저장하는 것이 우리의 목표입니다.저장된 데이터는 활성 항목이 됩니다.트위터 인증서와 데이터베이스가 있어서 계속 구축할 준비가 되어 있습니다.
우선, 우리는 필요한 소프트웨어 패키지를 가지고 가야 한다.그리고 재구성 프로그램을 시작하고 트위터, PostgreSQL, Cron 연결기를 설정합니다.왜 혹은 무엇이 크론인지 알고 싶다면,이것은 이 프로그램을 연결하는 도구로 우리가 사용할 때 더 많은 설명이 있을 것이다.
주의: ssl 보호된 데이터베이스에 연결하려면 pgsql 설정
ssl
옵션이 필요합니다.자세한 내용은 documentation를 참조하십시오.const { Reshuffle, CronConnector } = require("reshuffle");
const { TwitterConnector } = require("reshuffle-twitter-connector");
const { PgsqlConnector } = require("reshuffle-pgsql-connector");
const app = new Reshuffle();
//cron config
const cronConnector = new CronConnector(app);
//pgsql config
const pg = new PgsqlConnector(app, {
url: process.env.POSTGRES_URL,
});
//twitter config
const twitter = new TwitterConnector(app, {
customerKey: process.env.TWITTER_CUSTOMER_KEY,
customerSecret: process.env.TWITTER_CUSTOMER_SECRET,
});
// Code listed further down
// will be inserted here
app.start(8000);
Reshuffle connectors는 개발자가 사용자 정의 워크플로우와 통합을 쉽게 구축할 수 있도록 이벤트와 작업을 제공합니다.연결기를 설정함으로써 우리는 현재 그것들이 제공하는 기능을 이용할 수 있다.리트윗자의 데이터를 얻기 위해 Twitter API의
statuses/retweets/:id.json
엔드포인트를 사용합니다.트위터 커넥터GET
작업을 통해 전송자 데이터를 가져오려는 트윗 ID와 함께 단점을 하나의 매개 변수로 전달하는 것이 용이합니다.트윗 ID는 트윗 URL에서 확인할 수 있습니다.
const retweeters = await twitter.GET("statuses/retweets/1349430236383825921.json");
위 행을 실행하면 다음과 같은 컬렉션이 반환됩니다.이것들이 있으면 우리는 지금 전달자의 목록을 얻을 수 있다.그런데 여기에 문제가 하나 있다.트위터는 통화할 때마다 최대 100명의 사용자가 메시지를 전달할 뿐 페이지를 나눌 수 없다.
API를 정기적으로 호출하고 결과를 데이터베이스에 저장함으로써 이 문제를 해결할 수 있습니다.구성에 Cron 커넥터를 추가한 것을 기억하신다면 이 커넥터를 사용하겠습니다.
Reshuffle은 이벤트 기반 시스템이므로 이러한 이벤트를 처리할 코드를 개발해야 합니다.Cron 커넥터는 "x"시간마다 이벤트를 트리거할 수 있으며 API를 호출할 수 있습니다.
정기적으로
주의: 이벤트 처리 프로그램의 코드를 더욱 깔끔하게 하기 위해 트위터 호출을 함수에 포장합니다.
const usersRetweeted = () => {
return Promise.resolve(
twitter.GET("statuses/retweets/1350179812422258688.json")
);
};
cronConnector.on({ expression: "25 * * * * *" }, async (event, app) => {
const userList = await usersRetweeted();
userList.forEach(async (tweet) => {
await pg.query(
`INSERT INTO retweets(id, username) VALUES ('${tweet.id}', '${tweet.user.screen_name}')
ON CONFLICT (id) DO NOTHING`
);
});
});
주의: 이cron 표현식에 익숙하지 않으면 crontab.guru 을 방문하여 하나를 생성하는 데 도움을 주십시오.상술한 예는 25분마다 운행한다API가 호출되면 PostgreSQL 커넥터를 사용하여 전달자 데이터가 포함된 새 행을 삽입할 수 있습니다.id를 메인 키로 사용하면 데이터베이스에 중복된 전송이 저장되지 않습니다.
이것만 있으면 우리는 선거 기간에 그것을 운행할 수 있다.이후에, 우리는 다시 PostgreSQL 연결기를 사용하여 항목의 수를 검색함으로써, 우리는 무작위로 우승자를 선택할 수 있다.
const pickWinner = async () => {
const {
rows: [{ count }],
} = await pg.query("SELECT COUNT(*) FROM retweets");
const randomNum = Math.random() * count - 1;
const {
rows: [{ username }],
} = await pg.query(
`SELECT USERNAME FROM retweets LIMIT 1 OFFSET ${Math.abs(randomNum)}`
);
return username;
};
console.log(await pickWinner());
너는 이 카드 세탁 코드를 맞춤형으로 만들어서 여러 명의 사용자를 출력할 수 있다. 이것은 너의 경품이 얼마나 많은 이익을 얻을 것인지에 달려 있다.활동이 끝나기 전에 위의 코드를 주석해야 할 수도 있고, HTTP 단점이 맞았을 때 논리를 터치할 수도 있습니다.다른 커넥터와 마찬가지로 코드에 이를 요청하고 다음과 같이 구성해야 합니다.
const { Reshuffle, HttpConnector } = require("reshuffle");
//http config
const httpConnector = new HttpConnector(app);
다음은 사용 방법의 예입니다.httpConnector.on(
{
method: "GET",
path: "/pick-winner",
},
async (event, app) => {
const winner = await pickWinner();
event.res.json({ winner });
}
);
끝점에 도달하면 출력은 다음과 같습니다.HTTP connector
최소한의 코드로 트위터 API와 개조를 결합시켜 당신의 활동을 설정하고 관리하는 것이 얼마나 쉬운지 보길 바랍니다.다른 단점을 시도해 보고 독특한 것을 만들어 당신에게 어울리는 경품!
커넥터의 전체 문서:
Twitter Connector
PostgreSQL Connector
HTTP Connector
Cron 커넥터 지금
개발자와 프로젝트 관리팀이 통합 응용 프로그램을 사용하는 편리성을 체험함에 따라 통합 작업 흐름이 팀의 이익을 얻을 수 있는 다른 측면을 고려할 것을 권장합니다.이렇게 많은 다른 도구가 있으면, 네가 그것들을 하나의 공공 인터페이스에 통합할수록, 사람들은 더욱 쉽게 일을 완성할 수 있다.
Reshuffle은 고객의 요구 사항과 요구 사항에 귀를 기울입니다.통합할 서비스의 연결기를 보지 못했습니까?다음에 어떤 연결기를 개발하길 원하는지 추문을 보냅니다.
Reference
이 문제에 관하여(트위터 API 및 재구성을 통한 소셜 미디어 경연 및 경품 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/alanblee/using-twitter-api-and-reshuffle-for-giveaways-2gi8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)