![見出し画像](https://assets.st-note.com/production/uploads/images/133053210/rectangle_large_type_2_e7f1fa607a839826ec4ed56e3d46b668.jpeg?width=1200)
【APIv2対応】Twitter(X)に動画、画像、テキストを自動投稿するBot【GoogleSpreadSheet】
このコードでできる内容
GoogleSpreadSheetからツイートしたい内容を取得
テキストだけツイート
画像ツイート
動画ツイート
アフィリエイトリンクをつけたツリーツイート
ツリーツイートに対してさらにリプライ
URL入力で動画自動ダウンロード
アダルトアフィリエイトのために作成したツールですが、もちろん普通のBOTなどにも使用が可能です。
ツールのサンプル動作
私の宣伝用アカウントですが、ツイートしては消してみました。
テキスト、画像、動画、ツリー投稿、などをしている模様です。途中は動作待機時間があるので飛ばしてみてください。
購入するメリット
1 以前投稿した記事と合わせることで、FANZA-ツイートが完全自動化できます。
![](https://assets.st-note.com/img/1709683660910-szA2S2x9WP.png)
ツイート内容、投稿したい画像、動画、アフィリエイトリンク(リプライ文章)をセットして自動投稿できます。
2 こちらは買い切りのコードのため別googleアカウント、別Twitter(X)のアカウントで使用していただけます。複数アカウントの運用も可能です。
使用方法
ライブラリの確認
APIの設定
動作させたい関数の確認
トリガーの設定
ライブラリの確認
![](https://assets.st-note.com/img/1709683991067-irrcFzazjY.png)
左側のタブにはライブラリというものが存在します。Oauth2とOauth1を導入する必要があります。
ライブラリID Oauth2
1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF
ライブラリID Oauth1
1CXDCY5sqT9ph64fFwSzVtXnbjpSfWdRymafDrtIZ7Z_hwysTY7IIhi7s
ライブラリ+ボタンをクリックすると上記のコードをコピペする場所があります。スクリプトIDにペースト。
![](https://assets.st-note.com/img/1709684139065-YbNa5qd3Tt.png)
![](https://assets.st-note.com/img/1709684173409-P0yES9IqfV.png)
検索してそのまま追加。
![](https://assets.st-note.com/img/1709683968589-nUGq6bp3ye.png)
導入できた場合はこのように表示されます。
APIの設定
ここがひと手間かかります。
![](https://assets.st-note.com/img/1709684281750-sVcT8ZfMO6.png?width=1200)
コードの24行目まではAPIキーを入力していただく文です。
一つずつ解説していきます。
6行目は「google spread sheetからツイート内容を取得し、ループで連続投稿する場合の待ち時間」です。1=1秒なので120は120秒待機して、次のツイートを行います。
const TIME_SLEEP_G_SHEET = 120;
8行目は「google spread sheetのurl - 別noteにてgoogle spread sheetへのFANZAスクレイピング記事があります。」と記載がありますが
const GoogleSpreadSheet_URL = "https://docs.google.com/spreadsheets/d/1CBGz0eg3121231235rfdfasfasE/edit#gid=0";
上記のように""の間に取得したいGoogleSpreadSheetのURLを挿入します。
10行目は取得する行です。
GoogleSPreadSheetNumRows = 1000;
1000行取得するようにデフォルトでは設定しています。
// V2用のAPI(テキストのみを投稿する場合はv2のみでも可)
const CLIENT_ID = ''
const CLIENT_SECRET = ''
// V1用のAPI(動画、画像を投稿する場合はこちらも取得する必要あり)
const API_KEY = '';
const API_KEY_SECRET = '';
const ACCESS_TOKEN = '';
const ACCESS_TOKEN_SECRET = '';
const BearerTOKEN = '';
まだTwitter(X)のAPIを取得していない方はこちらの記事が参考になるかと思います。
![](https://assets.st-note.com/img/1709684831169-1ssmDgPvX1.png?width=1200)
こちらが私のAPIダッシュボードです。取得する必要がある項目が7件もありますが、このページから全て取得できます。
余談ですが、なぜこんなに多いのかというとTwitter(X)のAPIの仕様でいまだ昔のAPIを使用しないと動画、画像をAPI経由で送信できません。
ですので、昔のAPIと新API(v2)を混ぜているので7個もKeyが必要です。
![](https://assets.st-note.com/img/1709685100957-hoWO2AASIh.png?width=1200)
GASとTwitter(X)のAPI提携を初回認証する必要があります。そのコードも記入していますが、main関数を起動するだけで認証URLが発行されます。
![](https://assets.st-note.com/img/1709685126698-0Ql6BHTV9n.png)
発行されたURLからアカウントとGASを提携。
![](https://assets.st-note.com/img/1709685170157-AGrzFxtFpc.png)
このような画面に飛ばされますのでアプリにアクセスを許可してあげてください。
設定は以上になります。
動作させたい関数の確認
書き込みで動作する関数「normal_post_tweet_main、 image_post_tweet_main、video_post_tweet_main」に関しては
テキストのみツイート、画像のみツイート、動画のみツイートする関数です。
let content = "テスト動画です。";
let video_url = "https://cc35hhb.mp4";
このようにcontentの中身を操作するとその中身の文章をツイートします。
image_url = "https://test.com/testfile.jpg";
image_urlに投稿したい画像ファイルのURLを貼り付けると画像付きでツイートします。
contentが空だとツイートする内容がないのでエラーが発生します。
![](https://assets.st-note.com/img/1709685309389-uLV2D3fKCO.png?width=1200)
こちらの2つの関数は先ほどのvideo,image関数を発動させ、さらにそのツイートに対してリプライを送る関数です。要は、動画ツイートにリプライするやつです。
![](https://assets.st-note.com/img/1709685309279-eWKKqbv0cC.png?width=1200)
// アフィリエイトリンクなどのツリー用リンク及びテキスト
let content = "";
この content内部にアフィリエイトリンクなどを貼り付ければTwitter(X)の表示では埋め込み画像などとなり変換されます。もちろん、文章などでもOK
って、いちいち毎回ツイート内容をコピペするのは面倒ですよね。さきほどまでのはあくまでテスト用です。
![](https://assets.st-note.com/img/1709685309175-gKpKjSy87l.png?width=1200)
![](https://assets.st-note.com/img/1709685309069-FoZ1GxWYll.png?width=1200)
主に使用していただくのは上記の関数
「google_sheet_texts_tweet」「google_sheet_images_tweet」「google_sheet_videos_tweet」です。
![](https://assets.st-note.com/img/1709685689283-SV8yEIeFwW.png)
最初に設定したgoogleSpreadSheetURLから情報を吸い上げて、一定の間隔でツイートします。
google_sheet_texts_tweet
これは文章だけのツイートです。
![](https://assets.st-note.com/img/1709685788465-R9RT4Hxtbu.png?width=1200)
この関数内部にcolumn=1と記述があります。1=A列なので先ほどの画像で言うと
![](https://assets.st-note.com/img/1709685833796-EWo8SNCdTN.png)
A列がツイートの内容となってツイートされます。また、リプライを設定したくない場合はcolumn=4となっておりD列が最初は指定されていますが、空欄にしておいてください。
google_sheet_images_tweet
さきほどの文章のみ投稿する関数とほぼ同じです。
![](https://assets.st-note.com/img/1709685963626-ICtyF6kemQ.png?width=1200)
column=2となっている場所、すなわちB列に画像URLを入れておいてください。
google_sheet_videos_tweet
![](https://assets.st-note.com/img/1709685991350-XBhLSrjBev.png?width=1200)
videos = …… column=2となっています。これもB列に動画URLを入れていると動画を投稿してくれます。
画像と動画どちらも投稿する可能性がある場合は、column=3などにしておきC列に動画URLを挿入しておくと画像とかぶらないので良いかと思います。
トリガーの設定
左側タブメニューからトリガーをクリック。
![](https://assets.st-note.com/img/1709686152109-cvJYonDiD9.png?width=1200)
トリガーを追加をクリックすると、実行する関数を選択できます。選択した関数が自動で数時間毎に作動できるようにできます。
![](https://assets.st-note.com/img/1709686151928-3AqThWoKET.png?width=1200)
上手な使い方
最初に1000行取得がデフォルトと記載しましたが、ツイートをするのは数時間間隔でないとBANされてしまいます。間隔が長くてもTwitter(X)にBANされてしまうかもしれませんので何とも言えませんが…
GoogleSPreadSheetNumRows = 1000;
1000行取得するようにデフォルトでは設定しています。と記載していましたが現実的には
例えば2時間ごとにツイートしたい場合は
GoogleSPreadSheetNumRows = 6;
6行取得にし
const TIME_SLEEP_G_SHEET = 7200;
7200秒待機=2時間待機にすれば、2時間ごとにツイートします。
![](https://assets.st-note.com/img/1709686547420-nOc0XxgZFm.png)
12時間おきにトリガーを設定しておけば、完成です。これで12時間で6ツイートずつ、毎日行われるので24時間12ツイートするBOTの完成です。
もう少しツイート間隔を下げてもいいかもしれませんが…一応例です。
上手な使い方2
FANZAやMGSの記事を自動収集するGASを作成していますので、今回のGASと同じスプレッドシート内を操作するように設定します。
毎日新記事を更新するようにしておき、毎日トリガーを設定しておけば、毎日新しい記事ネタをツイートしてくれます。
とはいったものの….設定が面倒、複雑かもしれませんのでFANZA to GAS to Twitter(X)版も販売予定です。
エラーについて
Q google spread sheetに上からツイート内容を記載しているけど、ツイートは重複しないの?
A 同じツイート内容であれば、ツイートできませんので、スキップされます。ツイート内容が少し変更があれば、同じ動画でもツイートしてしまいます。
Q 完全に放置するには?どうすればいい?
A FANZAの動画の場合は、記事の取得を自動化するGASを導入、トリガー設定。このGASのトリガーも設定すれば完全自動化されます。
ライブラリの確認
注意点
1 FANZAのDVDサンプルなど一部対応していないサンプル動画があります。対応していないサンプル動画の場合は、googleAppsScript側からエラーが発生しますので、ツイートできません。
2 Twitter(X)のAPIを使用するため1日の投稿数に上限があります。
3 140秒以上の動画はTwitter(X)側からアップロードを禁止されています。GASのランニングエラーにならないためにも、短い動画が推奨されています。
コピペするコードはこちら
ここから先は
この記事が気に入ったらサポートをしてみませんか?