見出し画像

Twitter connection tool導入方法

0.はじめに

0.1 作成者から

本ツールは、指定したTwitchの配信状況を監視し、配信開始状況に応じてTwitterに自動投稿を行うものです。
ツールの動作に関する質問は受け付けますが、動作に伴う問題については自己責任となりますのでご注意ください。

0.2 本ツールの位置づけ

本ツールは、既に提供されているいくつかのクラウドサービスやStreamlabs Studioの開始時投稿機能の代替となるものです。
個人の1アカウントだけを監視することでクラウドサービスに比べて非常に早いタイミングで配信開始通知等を行うことができます。

0.3 想定している環境

Windows 10

1.Twitter connection toolのダウンロードと準備

本体スクリプトであるファイルを以下のURLから入手してください。
ファイルは画面右にあるReleaseを開き、そこからZIPファイルをダウンロードしてください。

ファイルをどこかのフォルダに展開しておきます。

2.Node.jsのダウンロードとインストール


動作に必須となるNode.jsのダウンロードとインストールを行います。インストーラは以下のURLから推奨版を入手してください。

インストールはインストーラの指示に従って進めてください。

3.動作に必要なモジュールの導入

本ツールの動作は、githubのページに記載しているとおり、いくつかのモジュールが必要となります。

  • node-fetch v2.x系のみ動作(v3.x系では動きません)

  • Twitter-API-V2 最新

  • log4js 最新

  • ajv v8.x以上

  • ajv-i18n 最新

3.1コンソールの起動

インストールを行うために、コンソールを起動します。
Windowsボタンを右クリックし、「Windows Powershell(管理者)」を選択します。
開いたコンソールで、先ほどファイルを展開したフォルダに移動します。

cd {展開したフォルダ}

例) cd E:\Tools\hogehoge

3.2モジュールのインストール


各モジュールをインストールするためにコンソールで以下のコマンドを実行してください。

npm install

4.各サービスの認証情報の取得

4.1 Twitchのアプリ情報の取得

まず、以下のサイトにアクセスします。
画面の右上に「Log in with Twitch」というリンクがあるので、そちらを押下します。その後、ログインを求められるのでお使いのTwitchアカウントでログインします。

ログインすると、コンソール画面が開くので画面右側にある「アプリケーションの登録」を押下します。
登録画面が表示されたら、以下のように入力し、画面下の作成を押下します。

名前:          英字で自由に決めてください(他者に使わせる場合はこの名前が表示されます)
OAuthのリダイレクトURL:http://localhost
             ※本ツールはローカルでの動作を想定しています。
カテゴリ:        Application Integration

作成したアプリケーションの管理画面を開き、以下の2つの情報をどこかにコピーしておきます。
注意:本情報は非常に重要な情報ですので取り扱いには注意してください。

クライアントID
クライアントの秘密
※こちらは最初表示されていないので、下にある「新しい秘密」を押下して出力してください。

4.2 Twitterのアプリ情報の取得

本手順で使用できる投稿数は1500回/月です。

まず、以下のサイトにアクセスします。
開いた画面の右上に三本線のマークがあるので押下し、そこから「sign up」を押下します。その後、ログインを求められるのでお使いのTwitterアカウントでログインします。

サインアップすると登録画面が表示されるので、ご自分に合った内容で入力し画面右下にある「Next」を押下します。

What's your name?
 あなたのお名前
What country are you based in?
 あなたの住んでる国
What's your use case?
 利用ケース:例えばMaking a bot
Will you make Twitter content or derived information available to a government entity or a government affiliated entity?
 もし政府機関やそれに準ずる組織で利用される場合はYes、そうでなければNo

次にAgreementが表示し、よく読み問題がなければ画面右下にある「Submit」を押下します。すると確認のメールがメールアドレス宛に届くので、「Confirm your email」を押下して認証してください。

するとアプリの作成画面が表示されるので、アプリ名を決めてください。ここで決めたアプリ名は実際に登楼した際にどこから投稿されたかの情報で表示されます。名前を決めたら、画面下の「Get keys」を押下します。

次にキーの情報が表示されるので、以下の2つをコピーしておきます。
注意:本情報は非常に重要な情報ですので取り扱いには注意してください。

API Key
API Key Secret

その画面から右下にある「Skip to dashboard」を押下すると、本当にセーブし忘れてない?というダイアログが開くのでコピーしたことを必ず確認してからダイアログ右下の「Yes, I saved them」を押下します。
また、ダイアログが表示されるので「Skip tour」を押下して閉じます。
チュートリアルを見たい人は「Let's go」を押下してください。

ダッシュボード画面に変わるので、画面の下にある鍵マークを押下します。
すると、作成したアプリの鍵情報の中にアクセストークン(Access Token and Secret)に関する情報があるので、その右側にある「Generate」を押下します。表示されたダイアログにある以下の2つの情報をコピーしておきます。
注意:本情報は非常に重要な情報ですので取り扱いには注意してください。

Access Token
Access Token Secret

画面上にある「Settings」を押下します。
スクロールすると下に「User authentication settings」があるので、その中の「Set up」を押下します。
開いた画面の「OAuth 1.0a」にチェックを入れ、以下の情報を入力し、画面一番下の「Save」を押下します。

Request email from users:  チェックしない
App permissions:       Read and write
Callback URI / Redirect URL:https://localhost/
Website URL:          https://twitter.com/home
Organization name:      オプションなので不要
Organization URL:       オプションなので不要
Term of service:       オプションなので不要
Privacy policy:        オプションなので不要

5.ツールの設定ファイルの変更

展開したフォルダの中に「settings.json」というファイルがあるのでテキストエディタで開きます。
ファイルの各項目を以下のように変更し、保存します。
まずは、テストモードはtrueで行ってください。

General
  twitchuser:  監視対象のTwitchユーザー名
  intervalMs:  監視間隔(30000msec以上)
TwitchAuth
  client_id:   先ほどコピーしておいたTwitchのクライアントID
  clinet_secret:Twitchのクライアントシークレット
TwitterAuth
  appKey:    TwitterのAPI Key
  appSecret:   TwitterのAPI Secret
  accessToken: TwitterのAccess Token
  accessSecret: TwitterのAccess Token Secret
TwitterPostSettings
  endpost:    配信終了時に投稿するか(trueなら投稿する、falseならしない)
  replyposttree:配信内容変更時に行う投稿を開始時の投稿の返信扱いにするか
          (trueなら返信扱いにする、falseなら単独にする)
  endposttree: 配信終了時に行う投稿を開始時の投稿の返信扱いにするか
          (trueなら返信扱いにする、falseなら単独にする)
  repeatpost:   配信していることを定期的に投稿するかどうか、Twitchの配信開始時刻が基準
                (trueなら定期的に投稿する、falseなら定期的に投稿しない)
  repeatcycle:  定期postする場合の、post間隔(301440分)
  TwitterBlue:  Twiter Blueを契約している場合、trueにすることで最大500文字まで投稿
TwitterPostValue
  StreamStart: 配信開始時の投稿内容
  StreamChange: 配信内容変更時の投稿内容
  StreamEnd:  配信終了時の投稿内容
  StreamCycle:  定期投稿時の投稿内容
DiscordSettings
  enable:       エラーで終了する際にDiscordに通知を行うか
                (trueなら通知を行う、falseなら通知を行わない)
  disp_username:通知を行う際のbotの名前
  mention:      通知を行う際に特定のアカウントにメンションを付けるか
                (trueならメンションを付ける、falseならメンションを付けない)
  alart_userID: メンション先のユーザーID(ユーザーネームではない)
  WebhookURL:   通知先のWebhookURL
Test
  testmode:  認証など問題ないか確認する際のテストモード
         テストモードがtrueの場合は、Twitterに投稿されません
         本番利用する場合は、falseにしてください。

6.ツールのテスト実行と確認

各種設定が終わったら、開いているコンソールに以下のコマンドを入力してください。

node ./TwitchStartPost.js

正常に動いていれば、画面に以下のような表示がされます。

配信前の場合:「hogehogeは現在配信されていません。」の表示
配信後の場合:Twitchの情報とTwitterの投稿内容
       (テストモードなので実際に投稿はされません)
       その後、「配信維持」の表示

問題がなければ、設定ファイルのテストモードをfalseに変更してください。

7.ツールを終了する

ツールの画面に対して「Ctrl+C」を2回入力してください。

8.実行用のショートカット作成

任意の場所で、右クリックし「新規作成」から「ショートカット」を選択します。
表示された画面で、先ほどの「TwitchStartPost.js」をフルパスで入力します。入力欄にパスが表示されたらその頭に「node (スペースあります)」をつけて、「次へ」を押下します。
次の画面でショートカット名の入力画面となるので任意の名前を入力します。

出来たショートカットを右クリックして、プロパティを選択します。
開いたダイアログにある「作業フォルダー」をファイルのあるフォルダに変更し、「OK」を押下します。

作成したショートカットを実行して問題なく動いているか確認してください。
ちゃんと動いていれば作業は終了です。

9.画像付きでTwitter投稿する

Twitterに対して画像付きで投稿を行いたい場合は、展開したフォルダの中に「tweetimages.json」というファイルがあるのでテキストエディタで開きます。JSONの配列になっているので、以下の内容に合うように記述してください。

category: Twitchで使用されるゲーム名(必ず日本語タイトルではなく英語タイトル)
image:    添付したい画像のファイルパス
mediaids: 変更せず""の状態にする(投稿時に自動的にidが記載される)

99.Tips

1.PCを起動したらもう動いて欲しい(Windows、画面あり)

更に実行するのが面倒!と言う場合は、「ファイル名を指定して実行」から「taskschd.msc」を実行して、タスクスケジューラを実行します。
「タスクの作成…」から新規のタスクを作成します。

全般
  名前:  任意の名前
トリガー
  タスクの開始:  ログオン時
操作
  操作:                 プログラムの開始
  プログラム/スクリプト:  "node.exeのフルパス"
  引数の追加:            "TwitchStartPost.jsのフルパス"

PCログイン後にスクリプトの実行画面が表示されるようになります。

100.【おまけ】実装を検討中

  • エラー時にDiscordではなくLINEに通知を送る機能

  • Google Spreadsheetと連携して、ゲームごとに配信文字列を変更する機能

この記事が気に入ったらサポートをしてみませんか?