スクリーンショット__8_

Google Apps ScriptとTwitter APIとCustom Search APIでおちんちんbot作ってみた~😤その1

おまんこ~♡
おちんちん闇営業でお馴染みなかだしちゃんで~す♡

みんなはもうなかだしちゃんの最新作・「Pornhubで役立つ英語講座③」は観てくれたかな~?
まだって人のためにリンク貼っとくね~♡

さて、実はなかだしちゃんは最近ヴァーチャルの世界にもっと詳しくなりたくてプログラミングの勉強を始めたんだ~😤✨✨
でも「せっかく勉強するならちゃんと活動に活かしたいな~」と思ってて、いろいろ考えてたんだけど、「Pornhubで役立つ英語講座③」のための調べ物をしてる時に"penis"を表す英語スラングの年表と、英語史を研究してる先生のサイトに「今日のthrough」っていうコンテンツがあるのを見て、私もTwitter APIとかを使って「🍌今日のおちんちん🍌」みたいなことやりたい~と思ったんだ~✨
それで色々調べながら、8月14日に最初のバージョンが完成したから、今日はここでどうやって作ったかを紹介しようとおもいま~す😳💖
(本当はQiitaに書きたかったけど、コメント欄でちゃんと怒る人がそれなりにいそうだな~と思って踏みとどまったよ~><)

0. おちんちんbotの仕様

使ったもの
・Google Apps Script(GAS):シートからデータ取得・API叩く
・Googleスプレッドシート:おちんちんの一覧を格納
・Twitter API
・Custom Search API:画像検索して結果をJSONで取得
機能
・Wiktionaryの"penis"の類義語一覧を取得してスプレッドシートに格納
・毎日3回決まった時間帯に自動でTweet
・おちんちんスラングからランダムで一つ紹介
・Wiktionaryの該当スラングのページリンク
・Pornhubの検索結果(8月17日追加機能)
・Google画像検索で最初にヒットした画像(8月17日追加機能)

💖おちんちんスラングの一覧を取得しよ~💖

本当は英語スラング年表から持ってこれればよかったんだけど、ちょっとHTMLの構造が複雑そうだったから断念してWiktionaryから持ってきたの~💦
データ数が減るとはいえ160弱のスラングが集められたから、単純計算なら1日3個紹介しても2ヶ月位は重複しないおちんちんが紹介できるしいいかな~って判断したよ><

Wiktionaryの"penis"類義語一覧をスクレイピングするには正規表現でゴリゴリヤるしかないのかと思ってたんだけど、調べたらスプレッドシートに"=IMPORTXML"っていうめちゃくちゃ便利な関数があるって教えてもらったから活用させてもらったよ~😤✨
https://qiita.com/ktmg/items/d53440c913e20f8bb34c

"=IMPORTXML"はスクレイピングするページのURLと取得したいデータのXPATHっていう住所みたいなものを引数として渡して使うんだけど、XPATHの取得には"XPath Helper"っていうChromeの拡張機能を使わせてもらったんだ~~~💟✨✨
https://qiita.com/rllllho/items/cb1187cec0fb17fc650a#xpath-helper

これで"Thesaurus:penis - Wiktionary"の"Synonyms"の各見出し語とそのURLを集めるには、XPath HelperでXPATHを確認して(Shift押しながらカーソルを合わせるとXPATHが表示されるよ~😤)・・・


取得した値を格納したいセルに

=IMPORTXML(A1, "/html/body/div/div/div/div/div[2]/ul/li[*]/a[1]")
=IMPORTXML(A1, "/html/body/div/div/div/div/div[2]/ul/li[*]/a[1]/@href")

って書けば、こんな風になるよ~💖
(クラス名とかは省いても問題ないっぽい(というか省かないと上手くいかないこともある?)、ワイルドカードを使ってるからコマンド1行書くだけで該当する全部の要素が取得できちゃうよ~✨✨✨)


💞Twitter APIを叩いてTweetしちゃお~💞

Tweetに使うデータが収集できたら、いよいよTwitterAPIでGASからTweetをするよ~♡
(そもそもWeb APIって何?って人は下の記事とかで何となくイメージを掴んでほしいな~><
ざっくり説明すると、特定のURLに特定のパラメータを渡してリクエストを送ると、Tweetの投稿とか色々便利なことができちゃうよ~っていう仕組みのことかな~🤔)
https://itpropartners.com/blog/8546/

まず、Twitter APIを使うにはTwitter developerから利用申請をしてTwitter社さんに許可を貰う必要があるんだ~><
詳しくはここを見てね~♡
(申請してから登録完了するまでだいたい1日かかるよ~💦)
https://qiita.com/kngsym2018/items/2524d21455aac111cdee

で、申請が通ったらTwitter developerで「おちんちんbot」アプリを新規作成してAPI keyを取得するよ~😓
(↓こんな感じ~)

そしたら今度はおちんちんの一覧が格納されてるスプレッドシートから「ツール」>「スクリプトエディタ」でAPIを叩くためのコーディングをシてイくよ~😤💪

そしてここでみんなに朗報~!!
今日は特別におちんちんbotのコードを教えちゃうよ~~!!!😳🎉🎊✨
これでみんなも簡単におちんちんbotが作れちゃうね~~~😍💞💖💗
そのコードが...

これだ~!!1🖊️2🖊️3🖊️!!!

//データを格納するシートを変数に代入
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('おちんちんリスト');

//おちんちんワードとURLをそれぞれまとめて配列に格納
var penises = sheet.getRange(2, 1, sheet.getLastRow() - 1).getValues();
var urls = sheet.getRange(2, 2, sheet.getLastRow() - 1).getValues();

//random関数を使うためにシートのデータが格納されている最終行の行番号を取得
var maxRow = sheet.getDataRange().getLastRow();

//Twitter認証用インスタンス
var twitter = TwitterWebService.getInstance('<Consumer API key>','<API secret key>');

// 認証
function authorize() {
 twitter.authorize();
}

// 認証解除
function reset() {
 twitter.reset();
}

// 認証後のコールバック
function authCallback(request) {
 return twitter.authCallback(request);
}

// ツイートを投稿
function twitterPenisBot() {

 //いくつめのスラングを取り出すか乱数を発生させて決定
 var num = Math.floor( Math.random() * (maxRow - 2) );

 var service  = twitter.getService();
 var response = service.fetch('https://api.twitter.com/1.1/statuses/update.json', {
   method: 'post',
   payload: {
     status: "【おちんちんbotだよ~💖】\n\n今日のおちんちん:" +
     penises[num].join('') +
     "\nWiktionary URL:https://en.wiktionary.org" +
     urls[num].join('')
     }
 });
}

TwitterAPI部分のコードは投稿文以外ここから丸ごと引っ張ってきたよ~😂
https://qiita.com/akkey2475/items/ad190a507b4a7b7dc17c

ま~でも今日のおちんちんを取得するのにわざわざ全部のおちんちんワードとURLを配列に格納する必要はないんだけどね~💦
同じプロジェクトにTwitter APIの申請許可待ってる間に作ったSlackbot用のコードがあって、そこと共有する感じにしてたからtwitterPenisBot関数の外側で定義してるんだよね~(とはいえどっちにしろ配列化する必要はないかも~🤔💦)

で、このコードを実行すると~~~

はい、見事今日のおちんちんを紹介してくれるbot機能がちゃんと稼働してくれました~~👏🎉🎊✨✨✨
あとはこれを自動化するだけだね~~!

🤖自動でおちんちんワードを紹介しちゃおう~~🤖

さて、やっとGASからコードを実行してTweetすることができるようになったわけだけど、このままだとついーとするたびにスクリプト画面を開いてコードを実行するっていうことをシなくちゃいけないよね~💦

そんなこと毎日3回もやってたらお爺婆ちゃんになっちゃうから、自動化して何もシなくても勝手についーとシてくれるようにシちゃお~~😤💪

やり方はいたって簡単!
スクリプトエディタの画面から「編集」>「現在のプロジェクトのトリガー」を選択シて、右下にある「トリガーを追加」を選択シよ~✨
なかだしちゃんの設定はこんな感じ~♡

これで「保存」を押せば、毎日8時から9時のあいだに1回がtwitterPenisBot関数が呼び出されてフォロワーのみんなにおちんちんワードが紹介できちゃうよ~💖


一回の記事で全部書こうと思ったけど、流石に長くなっちゃったから8月17日にバージョンアップした分についての説明はまた別に記事を勃てようと思いま~す💗

みんなもGASとTwitterAPIで楽しいついったーらいふを~~!
それじゃ~またね~ぱいぱ~い🍈🍈

いいなと思ったら応援しよう!