가장 빨리 믹서에서 배달하면 트위터에 트윗하는 봇 만들기
11600 단어 트위터TwitterAPI믹서Node.js
소개
협력하는 서비스 자체는 이미있는 것 같습니다.
설정이 잘되지 않았는지, 서버가 잘 작동하지 않는지,
기대하는 동작을 받을 수 없었기 때문에 스스로 만들기로 했습니다.
준비하는 것
집의 서버 환경에서 구축했습니다.
환경 구축
mixer.com의 공식 참조 에 node에서
하고 쓰여졌기 때문에 우선 여기에서
nodejs 설치
선인의 지혜를 빌립니다.
진지하고 매우 간단했다.
이하 인용
#普通に nodejs, npm をインストール
$ sudo apt install -y nodejs npm
#n パッケージを導入
$ sudo npm install n -g
#n package を使って node をインストールします。
$ sudo n stable
#混乱を避けるべく、最初に入れた古い nodejs, npm は消します。そして再ログイン。
$ sudo apt purge -y nodejs npm
$ exec $SHELL -l
#ちゃんと最新かどうか、バージョン確認
$ node -v
v10.15.3
npm 프로젝트 만들기
#フォルダ作成と移動
$ mkdir my-npm-pkg && cd my-npm-pkg
#プロジェクト作成
$ npm init
필수 모듈 설치
$ npm install --save carina ws twitter
기타 사전 준비
Mixer의 ChannelID를 알아두십시오.
https://mixer.com/api/v1/channels/<username>?fields=id
↑のusernameを自身のusernameに変えてアクセスしてください
이런 느낌으로 나오면 OK입니다. 표시된 숫자를 적어 두십시오.
Twitter 액세스 토큰을 얻는다.
https://mixer.com/api/v1/channels/<username>?fields=id
↑のusernameを自身のusernameに変えてアクセスしてください
위의 링크를 참고로
secret.json
{
"consumer_key" :"取得したConsumer Key(API key)の値",
"consumer_secret" :"取得したConsumer Secret(API Secret)の値",
"access_token_key" :"取得したAccess Tokenの値",
"access_token_secret" :"取得したAccess Token Secretの値"
}
를 만들어 둡니다.
스크립트 작성
그럼 실제 동작 부분을 만들어 봅시다.
constellation.js//根幹はリファレンスからコピペ
const Carina = require('carina').Carina;
const ws = require('ws');
Carina.WebSocket = ws;
//チャンネルIDを宣言しておく
const channelId = 1234;
const ca = new Carina({
queryString: {
'Client-ID': 'Click here to get your Client ID!',
},
isBot: true,
}).open();
ca.subscribe(`channel:${channelId}:update`, data => {
//情報がアップデートされるとここが実行される
console.log(data);
if(data.online && data.updatedAt){
//配信が始まるとonlineがtrueになりupdatedAtが変更されるのでそこで判定させる
console.log("配信始まったよ!");
//ここにツイート処理
const twitter = require("twitter");
const fs = require("fs");
const client = new twitter(JSON.parse(fs.readFileSync("secret.json","utf-8")));
const message = "https://mixer.com/username で配信を開始しました。";
client.post('statuses/update', {status: message}, function(error, tweet, response){
if (!error) {
console.log("[Successfully tweet!]");
} else {
console.error('error');
}
});
}
});
실행
$ node constellation.js
{ online: true}
{ online: true, hosteeId:null, updatedAt: '2019-03-31T19:42:55z'}
配信始まったよ!
[Successfully tweet!]
배달이 시작되면 위와 같이 출력되어야 합니다.
최종 파일 구성
my-npm-pkg
┣ node_modules/
┣ constellation.js
┣ package-lock.json
┣ package.json
┗ secret.js
그리고해야합니다.
이상입니다. 수고하셨습니다.
후기
node를 쓴 적이 없었기 때문에 처음 Browser라든지 쓰여져도? ? ? 라고 상태였지만,
보통 node javascript.js는 명령으로 동작시킬 수 있음을 알았으므로 안심했습니다.
공부가 부족하네요.
이 게시물이 누군가에게 도움이 될 수 있기를 바랍니다.
mixer 더 흥분하지 않을까 아 아 아 아
기타 참고
//根幹はリファレンスからコピペ
const Carina = require('carina').Carina;
const ws = require('ws');
Carina.WebSocket = ws;
//チャンネルIDを宣言しておく
const channelId = 1234;
const ca = new Carina({
queryString: {
'Client-ID': 'Click here to get your Client ID!',
},
isBot: true,
}).open();
ca.subscribe(`channel:${channelId}:update`, data => {
//情報がアップデートされるとここが実行される
console.log(data);
if(data.online && data.updatedAt){
//配信が始まるとonlineがtrueになりupdatedAtが変更されるのでそこで判定させる
console.log("配信始まったよ!");
//ここにツイート処理
const twitter = require("twitter");
const fs = require("fs");
const client = new twitter(JSON.parse(fs.readFileSync("secret.json","utf-8")));
const message = "https://mixer.com/username で配信を開始しました。";
client.post('statuses/update', {status: message}, function(error, tweet, response){
if (!error) {
console.log("[Successfully tweet!]");
} else {
console.error('error');
}
});
}
});
$ node constellation.js
{ online: true}
{ online: true, hosteeId:null, updatedAt: '2019-03-31T19:42:55z'}
配信始まったよ!
[Successfully tweet!]
node를 쓴 적이 없었기 때문에 처음 Browser라든지 쓰여져도? ? ? 라고 상태였지만,
보통 node javascript.js는 명령으로 동작시킬 수 있음을 알았으므로 안심했습니다.
공부가 부족하네요.
이 게시물이 누군가에게 도움이 될 수 있기를 바랍니다.
mixer 더 흥분하지 않을까 아 아 아 아
기타 참고
Reference
이 문제에 관하여(가장 빨리 믹서에서 배달하면 트위터에 트윗하는 봇 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nukokoi/items/087e7be3f5ac296725bb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)