一発芸:ツイートやtogetterから電子書籍を作る
ツイートやtogetterを電子書籍にしてkindleやiphoneにいれて、出かける時に「後で読む」をしてみようかと思い立ったので適当な使い捨てスクリプトにしてみた。
ttp://t2aki.doncha.net/tmp/t2h.pl
ツイートやtogetterのURLを入力するとツイートを取得して電子書籍で使うXHTMLに変換します。
[2015/05/24 22:38:30] ツイッターの仕様が変わったので、今は使えません。
URLからもわかるように、メンテをしていく予定は今のところ、ない。自分が次に使いたくなった時に不具合があったら直すかも。
やってることは単純で、Twitterやtogetterをクロールしてコンテンツを取得しているだけ。
取得したXTHMLをテンプレートの中のコンテンツXHTMLに上書きし、content.opfを2カ所編集して再度EPUB3に梱包すればできあがり。
(電子書籍として最低限のEPUB3ファイルを用意したので興味があれば中を覗いてください。え?こんだけでイイの?!というのが実感できると思います)
ちなみに、ことの発端は。
Twitterでフォローしている同人サークル『金属バット』三平x2さん(@sanpeimihira)の【萌える妖怪シリーズ】連続ツイート。
たとえば
↑がまとまったtogetterが https://togetter.com/li/654573
同じく同人サークル『クロヒス諸房』kyozyさん(@kyozy_tohno)の全力でくだらない『ハッターラ・キタクネー』連続ツイート。
たとえば
↑がまとまったtogetterが https://togetter.com/li/553959
このお二人、このネタはまじめにオススメ。
※ twitterから取得すると取りこぼすことがあるので、togetterから取得する方がいいと思います(togetterはモバイル版からツイートを取得)
ということで、イロモノ一発芸スクリプトのお知らせでした。
(もしかすると、ついのべやBL短歌などTwitter上での読み物をまとめて読むのに使える、かも)
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
twitterのOAuthについて改めて
perlでtwitterのOAuth認証するまで概略。
(今まで何度か書いたと思って探したら、スゲーテキトーなことしか書いてなかった)
「OAuthとは」てのはわたしもよくわかってない。詳しいサイトがたくさんあるので興味のかたは検索して調べてください。
大雑把に。
ユーザーを識別するのに、IDとパスワードが必要になるんだけど「野良サービスにメールアドレスやパスワードを登録するのはどうなの?」「いろいろなところにIDやパスワードを登録しても忘れちゃうし」ということで不安だし不便。サービスを提供する側としてもユーザーのIDなどを管理するのはリスキー。
そこで、twitterやfacebook、yahoo、mixiなどすでに利用していて信用できそうなサイトにログインしたら、そのまま他のサービスも使えるようにする・twitterなどがユーザーを保証してくれるのがOAuth認証というやつ(言葉はたぶん間違ってる)
ウチの「創作文芸見本誌会場HappyReading」https://books.doncha.net/happy-reading/ で使っている。
1 同人誌の登録ページにログインする
2 twitterのログイン画面に飛ぶ
3 twitterでIDとパスワードを入力する
4 ウチのページに戻ってくる
2のこんな画面は見たことがあると思う。
・ユーザーはtwitterのアカウントがあれば、twitterのID・パスワードでウチも使える。
・ウチとしてはユーザーのIDやパスワードを管理しない(知らないまま)なのでリスクが少ない。
準備
https://dev.twitter.com/apps
↑まずはアプリをここで登録をする。
(WEBだったらCGIなどのサービス)
登録するとOAuthに使うパラメータというかトークンが設定されるのでメモ。
・Consumer key
・Consumer secret
・Access token
・Access token secret
以下のURLもメモ。
・Request token URL
ttps://api.twitter.com/oauth/request_token
・Authorize URL
ttps://api.twitter.com/oauth/authorize
・Access token URL
ttps://api.twitter.com/oauth/access_token
・Callback URL
https://example.com/test.cgi
(これは自分が登録したWEBサービスなど)
その1
consumer key と consumer secret、callback URLをパラメータに持ってtwitterにトークンを要求する。
ttps://api.twitter.com/oauth/request_token に以下のHEADERをつけてGETでアクセス。
その2
consumer key と consumer secret に問題がなければ、oauth_tokenを取得できる。
twitterのログインページ(上図 ttps://api.twitter.com/oauth/authorize)にoauth_tokenをパラメータにつけてリダイレクトする。
その3
twitterのログインページでアプリを承認をすると再びウチのページに戻ってくる。
その時、oauth_token と新たに oauth_verifier というパラメータを付けてくる。
その4
oauth_verifier をパラメータに追加して ttps://api.twitter.com/oauth/access_token にPOSTでアクセスする。
postのcontent
問題がなければ、oauth_token と oauth_secret と screen_name が取得できる。
後はこの oauth_token と oauth_secret を使って(セッションなど利用して)ユーザーがウチのサービスを使えるようにする。
補足:OAuth のパラメータ
URL
METHOD
oauth_callback
oauth_consumer_key
oauth_nonce(一意のランダムな文字列)
oauth_signature(署名)
oauth_signature_method(署名の方法 HMAC-SHA1)
oauth_timestamp(タイムスタンプ timeの出力)
oauth_version(oauthのバージョン)
署名の作り方についてはこのあたり→ 「token secretの保存」 (2009/12/26)
ここんとこ、ツイート1のスパムアカウントからのフォローが断続的に続いて、いちいち手動でスパムブロックするのが面倒になったので、一括スパム報告するスクリプトを作ってみたら…OAuthなどずいぶんいろいろ忘れてたので、備忘録。
もの忘れが激しい。とほほ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
ツイートとレビューを取得する
この雑記帖スクリプトでは、公式APIが使いにくい・デザインが合わないブログパーツなどに関しては、HTMLから直接取得している。
twitterの「その他」→「ツイートをサイトに埋め込む」
この機能は便利なのに、表示・デザインに自由度がなくて、サイトに埋め込むと
このありさま。どっちが本文でどっちが引用(ツイート)なのかわからない我が侭な自己主張。ユーザビリティ、デザイン的にこれはない。
twitterとしては、表示をコントロール下において広告などで収益を視野に入れて展開したい、んだろうけど。サイトはこちらのもの。大きな顔をされては困る。
Amazon AWS の API でレビューが取得できなくなっていた(もう2年も前の話。今さら気づくのんきな父さん)
商品情報に含まれているのは、ユーザーレビューがあるかないか(true false)ユーザーレビューページのURL(24時間の期限付き)。このURLをインラインフレームで埋め込んでね、ということらしい。インラインフレーム表示させると、サイトの統一感を壊してしまって、楽天のチラシのような見た目になってしまう。
Amazonとしては、レビューの品質を上げるためにレビューをコントロール下において、レビューの精査・削除などしていきたいんだろう。
しかたないので、twitterもAmazonも公式APIを使わずに、HTMLを解析して取得、スタイルシートなど調整して、サイトにおさめるようにした(スクリプトのソースはちょっと内緒。HTMLのどこを見てるかあまりおおっぴらにするのは良くない=ルール違反かなあ)
見やすいサイト、使いやすいサイトは、サイトに掲載される情報の分類がきちんとわかりやすくレイアウトデザインされていて、動線も明確でリンクをクリックしたら何が起こるのかわかりやすくなっている。
アートは感性・デザインは理屈。サイトもデザインと同じで、どうしてこの位置にこのブロックがあるのか、なぜ動線はこっちに向けてるのかなどなど、いちいち説明がなければならない。
情報設計=インフォメーションアーキテクチャ=IA というらしい。初めて聞いたときは、また妙な、きっとくだらないカタカナ言葉でひとを騙そうとしやがって、だったんだけど本を読んでみると、IAに関してはWEBに関わるひとにとって必須。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
twitter API 1.0から1.1へ移行メモ
12日の明け方に、今まで使えていたエンドポイント(APIのURL)が使えなくなりあちらこちらで話題になっていた。具体的には
ttp://twitter.com/statuses/user_timeline/NNNNNN.xml
が使えなくなり
ttps://api.twitter.com/1/statuses/user_timeline.json
ttps://api.twitter.com/1.1/statuses/user_timeline.json
と、APIバージョンつきのURLを使ってね、ということ。
twitter公式発表だと、API 1.0 が使えるのは2013年3月までなので、この際ウチで使ってるtwitterのAPIなども1.1に変更した。
一次情報はこちら
https://dev.twitter.com
https://dev.twitter.com/docs/api/1.1
今まで意図通りに動いているスクリプト類は、1.1のエンドポイントに変更するだけでほぼOK。心配するほど大きな変更はなかった。
うちの場合データ取得などは、すべてXMLでやっていて、公式発表によると、RSS XMLは廃止、なので、jsonでの取得に切り替えた。twitterの公式ページには具体的なリクエストやパラメータなどが載っていて、サンプルもあって助かった。
mentions → mentions_timeline とバージョン番号の有無以外に変更になったAPIや廃止されたAPIもあるので、それは公式サイトを参照ください。
perlで作ったスクリプトでひとつひっかかったのがPOST。
1.0と同じデータを1.1のエンドポイントにリクエストすると、BadRequest 400が返ってくる。code 215エラーとか。1.0だと問題なかったのになんじゃそりゃ、と検索しまくってもそれらしい問題は出てこない。GETで取得するものは大丈夫。てことはOAuthでPOSTのリクエストに変更があったのか、と公式ページから辿ってみるとOAuthに関して、1.1は1.0よりもstrictになったらしい。でも、それならほかの開発者からも呪いの声が上がってるはず。公式ページを読んでも、OAuthのデータの作り方は今までと同じで問題ない。
あれこれ検索したり、CPANからNet::Twitterをダウンロードして眺めてみて、結論。
画像など添付のため、multipart form-data形式でのPOSTを受け付けるようになっていて、このPOSTは form-data なのか普通の(?)application/x-www-form-urlencoded なのかを明示する必要があったようだ。
これまでHTTPのヘッダのcontent_typeは何も指定せずそのまま通ってたんだけど
と、指定することで無事解決。…ほぼ一日ハマってしまった。
POSTリクエストの一次情報はこちら
https://dev.twitter.com/docs/auth/creating-signature
昨日、WEBの表に出てるところは、すぐに気づいて直してまわって、やれやれ終わったぜ、と思ってたら、cronで使ってるものがあってすっかり忘れてた。
cronで使ってたのは 「趣味は読書2」 という公開中のWEB本棚サービスのtwitter連携。
twitterで本のタイトルや、著者名をつぶやくと、その本がすでに本棚に入ってるかどうかをリプライする。二重買い防止のため、本屋さんなどで「うーん、これ読んだっけ?」な時に重宝してる機能だった。
- 『おかえりください』サウンドノベルWINDOWS版
- 『おかえりください』本編を加筆修正、6つのバッドエンド分岐シナリオを追加してサウンドノベル化!
音と映像が、血まみれのこっくりさんの惨劇を蘇らせる。 - 【無料体験版】はこちら
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
twitter Facebook mixi
今週の、打ち合わせというのか飲み会で、twitterやってる?facebookは?mixi?という話題も。
昔女の子だった方々に意外に不評だったのがmixi、それもmixiの売りだったはずの「あしあと機能」これがあるからmixiは伸びたと思ったんだけどなあ(あと当然、アダルトコミュ)元カレのところを踏んでしまった、とか、あまり関わりたくないのについ踏んで、とか。踏み返されたりメッセージが飛んできたりするのが嫌だ、と。その点、facebookはいい、んだそうだ。毎日facebookにン時間は費やしてるとのこと。
もうすっかりおっさんの半分オタクな男連中は、facebook の作り笑い的な無理矢理のリア充演技が耐えられない、と。普段牛丼食ってるくせに、たまにオサッレなカフェで食ったイタ飯(大きな皿の中央に、皿の直径の1/5程度しか中身が入っていない料理)の写真をのせて得意顔、とか。たしかにその通りで、わたしも、facebookは、なんかうさんくさいウソ臭い、という印象。
わたしはtwitterが今のところ一番気楽でいいんだけど、女子たちは誰が見てるかわからないから怖いという。あれ?キミら、さっきmixiのあしあとが嫌だとかいってなかったっけか。
自分の場合。
まずtwitterをチェック。という生活習慣。自分好みの2ch、みたいなもんだし
Facebook は、いまだに何がいいんだかよくわからない。
mixiは、終わったと思ってたんだけど、意外にまだ頑張ってる。ので、実際の顔見知り以外のマイミクを外して、公開範囲をを絞って使うことにした。
最近、LINEがスゲー、次はLINEだ、もしかするとfacebookを食うのはこれではないか、とWEB界隈が騒がしい。
よくわからないまま、それなら試しにインストールしてみた。
今週飲んだ元同僚や、今の知り合いなど、身近にすでに使ってるひとがいるのに驚いた、かも。あちこちに「購入ボタン」がある印象なので、間違えて購入しないように気をつけながら使ってみる。
[11/20 08:14:01] 追記。kindleやiTunesで展開中。これはこれで、なかなか面白いものです。
・ アマゾン kindleストアに並べた電子書籍のリスト
手前味噌だけど、ホラーや青春もの、癒しの物語などオススメできます。短編だと100円からあるので、気楽に読んでみてやってください。
こちらはiPhone電子書籍アプリ 「小説同人誌Select」
https://itunes.apple.com/jp/app/id546230414?mt=8
小説同人誌Selectというこのアプリは無料で、中に有料の小説が収録されてます。無料サンプルもあるので、まずは立ち読み感覚でダウンロードして、気に入ったらその作品を購入してもらえるととてもうれしいです。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
「趣味は読書2」にtwitter経由検索
twitter連携その2.twitterでリプライ飛ばしてもらって、タイトル検索もしくは著者検索をして、リプライで返す。というやつ。
仕組みは簡単。twitterである程度決まった書き方してもらえば、そこから正規表現でテキトーにバラしてSQLにして投げ込むだけのお手軽さ。
とはいえ、twitter の仕様? since_id が意味不明でハマってしまった。
since_idは、そのID以降のtweetを拾う。
と思ってたんだけど、どうやっても出てこない。検索しまくったもののよくわからない。しょうがないんで、前回取得した最大のIDをDBに記録。特にパラメータもなしに mention を1ページ20件×5ページ分取得して、記録しておいたIDより小さいものがあったらスキップ、というなんだかアレなやりかたになってしまった。
lolipop のロリポプランでは、cron の最小間隔5分。5分ごと、twitterで、mentionを取得することになる。その間に100超えるリプライがあったらあふれてしまうので、そのときは最大取得ページ数を増やすことに。現状、たぶんほとんど使われないので、これでも平気、のはず。
一応、ケータイで自分の本棚の検索をできるようにしてあるんだけど、こっちはIDとパスワードをそのたびに入力しなきゃいけない、ちょっとした面倒がけっこうなハードル。ケータイでtwitter見ることが多いので、急ぎじゃなければ(検索結果が返ってくるまで、最大で5分はかかる)twitter経由で検索するかな。
https://doncha.net/about.pl?c=help
https://twitter.com/dokusyo2
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」