LINEからDMMのサンプル動画が見れる、「変態コンシェルジュ」を作ろう!
***************************************************
【お得なマガジンもあります】
セット割で、3000円ほどお得になります。現在、3本のチュートリアルが利用できます。LINE Botの作成を学べるコースです。以下のチュートリアル3点が、セット割で購入することができます。
・【AIプログラミング】LINEに画像を送ったら自動で文字起こししてくれる機械学習アプリを作ろう
・スケベAI「スケベ博士」をPythonとGoogle Apps Scriptで作るスケベ・チュートリアルを公開します
・JavaScriptだけで書ける!LINEからDMMのサンプル動画が見れる、「変態コンシェルジュ」を作ろう!
*******************************************************
追記)
・質問対応をgithub上で行えるようにしました。 4/22 2018
LINEでDMMのアダルト動画のサンプル動画が見れる「3年B組(31)」(変態コンシェルジュ)の作り方を、このチュートリアルでは解説したいと思います。
変態コンシェルジュとは
変態コンシェルジュは、Lineでメッセージを送ると、そのメッセージに関するDMMのサンプル動画を返してくれるサービスです。再度同じメッセージを送ると、それとは違う動画を返してくれます。ただのスケベなサービスでございます。
スケベはお友達は、現在1000名を超えています。
また、リリースから1カ月たちますが、いまだに変態紳士たちから毎日300リクエストくるような、サービスとなっています。
あとメッセージが返ってくるとき、グループラインに擬態しているので、ばれにくいという、まさに「スケベのスケベによるスケベのためのサービス」なのです。詳しくはブログ記事で紹介していますので、ご覧ください。
このチュートリアルできるようになること
このチュートリアルは、Google Apps ScriptというGoogleの特殊なJavaScriptを使って、1から変態コンシェルジュを作るものとなっています。もしこのチュートリアルを完了すると、以下のようなことができるようになります。
・Web API を使ったマッシュアップアプリがつくれるようになる
・簡単なJavaScriptを使って、スケベなアプリケーションを作ることができる
・Line Botの作り方がわかるようになる
・ネットの検索履歴にDMMのURLが乗らなくても、LINEでメッセージ送っているふりしながらエロ動画が見れる
・チュートリアルを完了して、私に報告するとスケベサイエンティストに任命される
たくさんの特典がありますね。なかでもスケベサイエンティストの認定は、市場価値が一気に高くなるのでおすすめです。履歴書に書くとGo○gleに内定できるという噂です。
チュートリアルが完了したら、リプ送ってください。スケベサイエンティスト認定します!あと、どうしてもスケベサイエンティストの資格が欲しければ賄賂で5000円サポートしていただければ認定します。ツイッターでチュートリアルが完成したことを証明できるもの、もしくは裏金を払ったnote IDを教えていただければスケベ認定します。
変態コンシェルジュの実装方法
さて、変態コンシェルジュは、以下の技術で作られています。
・Google Apps Script(ほとんどJavaScript)
・DMM API
・Line API
Google Apps Scriptは、GoogleがつくったJavaScriptみたいな感じの言語で、環境構築とか一切せずに、Web上でプログラミングできるようなものになっています。詳しくはこちら。
普通にWebアプリ作ると、サーバーの知識だったり、HTML、CSSの知識やサーバーサイドのプログラミング言語(Ruby, Python)を勉強しなければならないのですが、このアプリはJavaScriptだけで書けます。簡単な知識で、面白いものが創れるチュートリアルとなっています。
読者の対象
なので、今回基本的に学習が事前に必要なのは、JavaScriptのみとなっています。JavaScriptを学んだことがある人は、だれでも進めることができるようになっているので、非常に簡単なものとなっています。少なくとも、if文・for文・while文・functionという言葉を聞いて、理解できているレベルであれば実装できるようになっています。
Webアプリの開発のような、サーバーの構築などの知識も一切必要ないので、「プログラミングで何か作りたい!」という人にとっては、とても面白いチュートリアルだと思います。あともうそろそろ性欲が強すぎて性犯罪に手を出しそうな人にもお勧めです。
「JavaScriptなんて聞いたことねぇけどムラムラするぞ」「なんでもいいから早くやらせろ」って人はとりあえずプログラミング学習サイトから、性欲でなんとかJavaScriptを勉強してみてください。お勧めのサイトはこちらです。
無料版:Progate JavaScript
https://prog-8.com/languages/javascript
有料版:ドットインストール Google Apps Script入門
https://dotinstall.com/lessons/basic_google_apps_script_v2
とくに初心者にとって、一番大切なのは、性欲です。全てやる気で解決してはいけません。性欲があればやる気がなくてもなんとかなります。とりあえず性欲高めの人にお勧めです。
このチュートリアルで学ぶこと
このチュートリアルでは主に以下のことを学びます。
・ Web API を利用した、マッシュアップアプリの作り方
・HTTPの通信
・Web APIリファレンスの読み方
・Google Apps Scriptの実装方法
・Line Botの作り方
だいたい適当なテンションで書いているので、情報としては間違っているかもしれませんが、とりあえず性欲を満たすために頑張りましょう!
Web APIマッシュアップアプリとは
さて、さっそく始めましょう。Web APIマッシュアプリとはなんでしょうか。残念ながらマッシュと聞いて鬼頭を思いついた人は、性欲をいったん抑え落ち着いてください。
Web上で使われる「マッシュアップ」は「2つ以上のWebサービス(Web API)を利用して混ぜ合わせて新しいサービスを生み出す」ことを指します。
マッシュアップアプリで何ができるの?
「マッシュ違いか」と落ち込んだそこのあなた。がっかりしないでください。マッシュアップアプリは結構すごいんです。
なんと複数のWebサービスの情報を利用することで、以下のようなアプリケーションを開発することができます。
例えば・・・
・DMMのAPIと、ツイッターのAPIを利用して、エロ動画をツイッターに自動投稿する(昔作者は個人的な性癖で鳳かなめbotというものを作っています)
18禁なので良識がある変態紳士のみ見て下さい。
https://twitter.com/otorikanamebot
・DMMのAPIとLINEのAPIを利用して、LINEでメッセージを送ったらエロ動画を返してくれる変態コンシェルジュです。
・Slack APIを利用して、DMM APIからエロ動画を流す
まさか会社のSlackにエロ動画を流すことをする人は、なかなかの猛者出ない限りいないかと思いますが、やろうと思ったらできます。日々の業務にマンネリ化してみたら社内ツールとして導入しオフィスをイカくさくしてみるのも一興かもしれません。
仮想通貨関係のWeb APIをいっぱいだしているので、そこでマッシュアップ作るのも面白いかもしれませんね。
このように、Web APIを利用したマッシュアップアプリは、複数のサービスのデータや機能を組み合わせて、一つの新しいサービスを作ることができるようになります。
ちなみに似ているAV女優を教えてくれるスケベ博士も、AIを使えるWeb APIを利用したマッシュアップアプリとなっています。気になる人はこちらのリンクから読んでみてくだださい。
そもそもWeb APIとは
さて、本題に入りたいと思います。Web API(Application Programming Interface)について、勉強していきたいと思います。
Web APIを堅苦しい言葉で説明すると、HTTPプロトコルを用いてネットワーク越しに呼び出すアプリケーション間、システム間のインターフェースのことです。
こういうわかりにくい説明が嫌なのでスケベ語に訳します。
僕らがネットからサイトでデータにアクセスするとき、投稿するとき、更新するとき、削除するとき、僕らはHTTPという通信を使っています。そして、そのデータをほかのサイトから扱うときの窓口をしてくれているのがWeb APIなのです。
例えば、僕らがDMMから情報を取りたいとき、いちいち普通にサイトいくの面倒くさいじゃないですか、いちいちログインして、クリックしてってやるのは面倒くさいですよねw それを、Web APIという窓口に「おい、鳳かなめちゃんのエロ動画よこせ!」っていう通信を送ると、DMMのAPIが情報を検索した結果、「こちらです兄貴!」みたいな感じで動画のデータを通信を送った人に返してくれます。
もしくは、投稿をイメージすると、ほかにもイメージしやすいのでいうと、よくツイッターで自動投稿してくれるようなアプリありますよね。あれは、「このサイトで書いたエッチなコメント、面倒くせぇからツイッターが同じこと代わりにおれのアカウントからつぶやいてくれよ!」という通信をWeb APIへ送ると、ツイッターのAPIが「OK,書いておくわ」とかってにツイッター内で投稿してくれるわけです。(ただし、自分以外の人が勝手に投稿しないように、認証コードもふくめて送ったりします。)
簡単に言えば、あるアプリケーションから、外部サイトの情報を、受信・送信・更新・消去ができるような窓口がWeb APIになります。DMMのAPIを利用すれば、DMMのエロ動画を受信できるようになるわけですね。
Web APIは共通の方式で外部のデータを公式に取得したり、投稿できたりできるので、外部サイトの情報をうまく利用する方法として、適しています。
Web APIで使う通信の仕組みを学ぼう
でですね、このWeb APIを使うためには、共通の通信の仕組みを理解しなければいけないんですね。そのためには、HTTPという、ネットの通信を学ぶ必要があります。概要を知りたいって人はこちらを読んでみるとよいと思います。
HTTPの通信で覚える知識
さて、さっそくHTTPの通信について学びたいと思います。ここでは、さっさとスケベしたいため、APIを利用するうえで最低限必要なことを学びたいと思います。といっても、以下の5種類しかないんですけどね笑
・CRUD
・URL (エンドポイント・リクエストURL)
・リクエストパラメーターとURLエンコーディング
・URLエンコーディング
・リクエストヘッダーと認証
・リクエスト ボディ
CRUD (CREATE READ UPDATE DELETE)
実は、僕らがネットで通信しているときって、実際以下の4つの処理しかしていないんですよね。左が具体的な操作、右が実際にHTTPで通信するときの言葉です。
・CREATE: 作成 ⇒ POST
・READ:読み取り ⇒ GET
・UPDATE:更新 ⇒ PUT
・DELETE:削除 ⇒ DELETE
CREATEは、その名の通り、作成です。例えば、DMMのエロ動画のレビューで「鳳かなめちゃんのスケベな顔がデュフフ」ってコメントしたとします。そのばあい、HTTPだと、CREATEアクションが行われるわけです。で、CREATEアクションは、HTTPだとPOSTというアクションを行うわけです。CREATE = POSTだと覚えてもらって、スケベするだけなら大丈夫だと思います。
READは、その他の通り読み取りです。例えば、「鳳かなめちゃんのエロ動画見せて!」ってときはそのURLにREADアクションを行います。READアクションはHTTPだと、GETリクエストを送ることになります。何かしらの情報を送るのではなく、単純に見たいのであれば、GETというリクエストを送ることになります。
UPDATEは、その名の通り、更新です。例えば、「かなめちゃんのお尻最高」とコメントしていたけど、やっぱりおっぱいも最高だと思っていたときに、すでにあるコメントを更新することになります。その場合は、UPDATEアクションを起こして「かなめちゃんのおしりもおっぱいも最高!」と更新するわけですね。HTTPの通信だと、PUTというリクエストを送ることになります。
DELETEはその名の通り消去です。例えば、「かなめちゃんのお尻最高!」とコメントしたときに、ほかの古参玄人スケベおじさんが「いや、普通に考えておっぱいだろjk」とコメントしたとします。その時に情弱スケベ青二才であるあなたは、自分のコメントを取り消したいかもしれません。そういうときは、DELETEというリクエストを送ることになります。
Web APIを利用するときは、この4種類のリクエストを送ることで、情報を取得したり、投稿したり、更新したり、削除したりすることができるわけです。
とりあえず、GET・POST・PUT・DELETEだけ覚えておいてください。参考:
URL (エンドポイント・リクエストURL)
URLは、その名の通りwww.google.comのようなアドレスのことです。ただし、Web APIを利用するときには少し覚えてもらいたいことがあります。
普段エロサイトをいじっているときに、あまり意識しないと思いますが、実は同じURLでも違うことを知っていることを知っていましたか。
思い出してみてください。DMMのサイトでお気に入りしていたサンプル動画を見ようとあなたはしています。その時に、まずログインページにアクセスしますよね。
そのとき、あなたはログインページにアクセスします。
https://accounts.dmm.co.jp/service/login/password/=/path=SgVZXg9CAF4X/channel=digital
このときに行っているのは、このURLにGETリクエストを送っているわけです。つまり、「ログインページ見せたまえ」とのたまっているわけですね。
で、ログインするためにフォームを入力するわけで、「ターン」と性欲とともにエンターキーを強く押すわけです。この時にやっているのが、先ほどの学んだCREATEアクション、つまりPOSTリクエストを送っているわけですね。
つまり、同じURLでも、違うリクエストをあなたは気づかず送っているわけです。この同じURLでも、異なるアクションを送るということを覚えておいて下さい。
リクエストパラメーターとURLエンコーディング
さて、あなたがDMMである動画を検索するとします。DMM R18で、なぜか最初に思い浮かんだ「回転ずし」ということばで検索してみた結果出力されたURLは以下のようになっていました。
これは実は、
・searchstrに%E5%9B%9E%E8%BB%A2%E3%81%9A%E3%81%97
・sortがranking
という値が入っていることになります。でですね、「回転ずし」というキーワードが%E5%9B%9E%E8%BB%A2%E3%81%9A%E3%81%97というよくわからない文字列になっていることに気が付くと思います。実はこれ、卑猥だから隠しているとかそういうわけではありません。
実は、URLに日本語を直接入れて検索することって、できないんですよ。なので、日本語をエンコーディングという符号化を行う処理を挟まなければならないんですね。これをURLエンコーディングなんて言ったりします。
とりあえず、URLにパラメータを入れて検索していること、日本語のパラメータはURLエンコーディングされていることだけは覚えておいてください。
リクエストヘッダーと認証
でですね、あなたが晴れてDMMにログインします。その時に、あなたがあなたである証明コードを、実は常に通信の一部の中に埋め込んでいるわけです。
HTTPには実はHTTPヘッダーという部分と、HTTPボディという二つの部分に大きく分けるとわかれています。この、リクエストヘッダーの部分に、あなたがあなたであるという認証の暗号が埋め込まれているわけですね。
ちなみにこの認証の暗号がないと、例えばあなたのDMMのアカウントに、スケベな犯罪者が勝手にログインして、スカトロもののAVをひたすら購入して気づいたら糞まみれになっているかもしれません。そうなってしまうと困るので通信の中には自分の認証コードをHTTP ヘッダーに含める必要があるわけです。(ちなみにスカトロを否定しているわけではありませんからね)
認証の種類にもいろいろありますが、Web APIを利用する場合は大体OAuth認証とか、Basic認証と呼ばれるものがあります。とりあえず名前だけそんなのあるんだぐらいで大丈夫なので、頭の片隅に入れておいて下さい!
あとHTTP Headerには、今ログインしようとしているのがパソコンなのか、スマホなのかという情報も実は埋め込んだりしています。どのサイトにアクセスするかによって、リクエスト の中身はかわります。
詳しくはこちらの記事がわかりやすいと思うので、よんでみてください。
また、HTTPのリクエストの中身を、実際にブラウザ上から見ることも可能です。詳しい情報は、WindowsならF12ボタンを押して、開発者ツールを開くと、どんな通信を行っているかわかるかと思います。詳しくはこちらを参照してみてください。
リクエストメッセージボディ
リクエストメッセージボディには、さきほどログインするときに入れたような情報を埋め込むことができます。名前とか、パスワードとかそういう値ですね。情報を送る場合なので、POSTリクエストを送るときが一番使われます。
HTTPの詳しい理解をしたい方は、下のページを参照してみるとよいと思います。
DMM APIを使ってみよう
さて、そんな抽象的な話はよう分からんからさっさとエロいことさせろっという人たちの声が聞こえてきたので、さっそくDMM APIを利用してみましょう。
今まで学んだ知識をDMM APIの登録方法と、データの取得方法について解説していきたいと思います。流れとしては、
・DMMのアカウントの作成
・DMMのWeb API リファレンスを読む
・DMMのWeb APIにアクセスする
という流れにしましょう!
まずはDMM Web APIに登録しよう
まずは、DMMのWeb APIに登録する必要があります。なぜかというと、ユーザーに紐づいた認証コードが必要になるからです。
DMMのAPIを利用するには、以下2点が必要です。
DMMのAPP ID
DMMのAFFILITATE ID
これらをIDを取得するためには、DMMのアフィリエイトプログラムに登録する必要があります。個人のサイトが必要なようですが、ツイッターページでもよいとのこと。
(ちなみに実はAPIで取得できる値に、アフィリエイトコード入りのURLが入っていまして、そのコードから商品が購入されると報酬がもらえるそうです。詳しくは報酬についてをご覧ください。また、商品によっても紹介料が違います。詳しくは報酬料率一覧をご確認ください。だいたい、1000円のビデオが売れたら、350円入るくらいの報酬利率みたいです。)
まず、この指示に従って、DMMのアフィリエイトに登録しましょう。
商品リンクが作れる!DMMアフィリエイトの登録から広告掲載までの流れ
http://bibouroku.xyz/dmm-affiliate/
さて、申請には3日ほどかかると書いてあります。申請が通るまでに、ちょうど3日ほどかかりましたが、メールで審査結果がきました。これで無事、APP IDとAFFILITATE IDができました。
登録に成功すると、自分のAPP IDとAFFILIATE IDを確認できるようになります。DMMのAPP ID確認ページはこちらにあります。アフィリエイトIDは、自分の登録したID + 3桁(990-999)の数字となっています。
https://affiliate.dmm.com/api/id_confirm/
これで準備完了です。API IDは下のモザイクの部分から取得可能です。
APIリファレンスを読んでみよう。
Web APIを利用するときに、かならず参照するものがあります。それはAPIリファレンスです。これは、APIの使い方が書いてある説明書のようなものだとおもってください。
DMM 商品情報検索APIを理解してみよう
さっそく、DMMのAPI リファレンスを下記サイトから読んでみましょう。
https://affiliate.dmm.com/api/v3/itemlist.html
さっそくAPIリファレンスを読んでみましょう。リファレンスを読むと、リクエストURL、リクエストパラメータがあることがわかります。
リクエストURL
https://api.dmm.com/affiliate/v3/ItemList?api_id=[APIID]&affiliate_id=[アフィリエイトID]&site=DMM.R18&service=digital&floor=videoa&hits=10&sort=date&keyword=%e4%b8%8a%e5%8e%9f%e4%ba%9c%e8%a1%a3&output=json
上のURLには、[APIID]と、[アフィリエイトID]があります。
よく読むと、AFFILIATE IDの末尾を990-999の間にせよとのことなので、アフィリエイトIDの末尾を999に変更すればよいみたいです。
リクエストパラメータ
リクエストパラメータを確認すると、以下のようなものになっています。これらの値をURLにこれから入れてあげることになります。
今回取得したい値
今回取得したいのは、
・ヒット数が10 (hit=10)
・キーワードが「新人」(keyword=%E6%96%B0%E4%BA%BA)
・outputがXML (output=xml)
の結果を取得したいと思います。
今回は先ほど「新人」で検索し、ヒットしたものを取得します。(%E6%96%B0%E4%BA%BA)
この場合だとヒット数が10、キーワードが「新人」、outputがxmlでしたので、その値で検索するとこうなります。APIIDとAFFILIATE IDはさきほどとってきた値をそのまま書いてあげて下さい。
https://api.dmm.com/affiliate/v3/ItemList?api_id=${APIID}&affiliate_id=${AFFILIATE ID}&site=DMM.R18&service=digital&floor=videoa&hits=10&keyword=%E6%96%B0%E4%BA%BA&output=xml
上記のURLにアクセスした結果がこちらです。XMLという形式で出力されるようになります。
XML形式だと、こんな感じでとれます。これをJSON形式でとると、
https://api.dmm.com/affiliate/v3/ItemList?api_id=${APIID}&affiliate_id=${AFFILIATE ID}&site=DMM.R18&service=digital&floor=videoa&hits=10&keyword=%E6%96%B0%E4%BA%BA&output=xml
こんな結果になります。
こんな感じで、URLに値を入れてあげると、データを取得できるわけですね。普通だったら、DMMにアクセスして、検索欄から検索キーワード入れて、その結果のページをクリックして、サンプル動画を見るという処理をしなければならないのですが、Web APIという窓口から、指定したパラメーターでGETリクエストを送るだけで、必要な情報がとれてしまうわけです。
サポートでいただいたお金はFanzaの動画を購入するために利用されます。