ひまつぶし雑記帖

twitterのOAuthについて改めて

2013/11/24 [10:43:06] (日) 天気

perlでtwitterのOAuth認証するまで概略。
(今まで何度か書いたと思って探したら、スゲーテキトーなことしか書いてなかった)
「OAuthとは」てのはわたしもよくわかってない。詳しいサイトがたくさんあるので興味のかたは検索して調べてください。

大雑把に。
ユーザーを識別するのに、IDとパスワードが必要になるんだけど「野良サービスにメールアドレスやパスワードを登録するのはどうなの?」「いろいろなところにIDやパスワードを登録しても忘れちゃうし」ということで不安だし不便。サービスを提供する側としてもユーザーのIDなどを管理するのはリスキー。
そこで、twitterやfacebook、yahoo、mixiなどすでに利用していて信用できそうなサイトにログインしたら、そのまま他のサービスも使えるようにする・twitterなどがユーザーを保証してくれるのがOAuth認証というやつ(言葉はたぶん間違ってる)

ウチの「創作文芸見本誌会場HappyReading」http://books.doncha.net/happy-reading/ で使っている。

1 同人誌の登録ページにログインする
2 twitterのログイン画面に飛ぶ
3 twitterでIDとパスワードを入力する
4 ウチのページに戻ってくる

2のこんな画面は見たことがあると思う。
image
・ユーザーは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
 http://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などずいぶんいろいろ忘れてたので、備忘録。
もの忘れが激しい。とほほ。

»電子書籍制作代行についてはこちら

ツイートとレビューを取得する

2013/2/24 [10:07:32] (日) 天気

この雑記帖スクリプトでは、公式APIが使いにくい・デザインが合わないブログパーツなどに関しては、HTMLから直接取得している。

twitterの「その他」→「ツイートをサイトに埋め込む」
この機能は便利なのに、表示・デザインに自由度がなくて、サイトに埋め込むと
image 
このありさま。どっちが本文でどっちが引用(ツイート)なのかわからない我が侭な自己主張。ユーザビリティ、デザイン的にこれはない。
twitterとしては、表示をコントロール下において広告などで収益を視野に入れて展開したい、んだろうけど。サイトはこちらのもの。大きな顔をされては困る。

Amazon AWS の API でレビューが取得できなくなっていた(もう2年も前の話。今さら気づくのんきな父さん)
商品情報に含まれているのは、ユーザーレビューがあるかないか(true false)ユーザーレビューページのURL(24時間の期限付き)。このURLをインラインフレームで埋め込んでね、ということらしい。インラインフレーム表示させると、サイトの統一感を壊してしまって、楽天のチラシのような見た目になってしまう。
Amazonとしては、レビューの品質を上げるためにレビューをコントロール下において、レビューの精査・削除などしていきたいんだろう。

しかたないので、twitterもAmazonも公式APIを使わずに、HTMLを解析して取得、スタイルシートなど調整して、サイトにおさめるようにした(スクリプトのソースはちょっと内緒。HTMLのどこを見てるかあまりおおっぴらにするのは良くない=ルール違反かなあ)


見やすいサイト、使いやすいサイトは、サイトに掲載される情報の分類がきちんとわかりやすくレイアウトデザインされていて、動線も明確でリンクをクリックしたら何が起こるのかわかりやすくなっている。

アートは感性・デザインは理屈。サイトもデザインと同じで、どうしてこの位置にこのブロックがあるのか、なぜ動線はこっちに向けてるのかなどなど、いちいち説明がなければならない。

情報設計=インフォメーションアーキテクチャ=IA というらしい。初めて聞いたときは、また妙な、きっとくだらないカタカナ言葉でひとを騙そうとしやがって、だったんだけど本を読んでみると、IAに関してはWEBに関わるひとにとって必須。

 

 

»電子書籍制作代行についてはこちら

twitter API 1.0から1.1へ移行メモ

2012/10/13 [16:44:37] (土) 天気

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で本のタイトルや、著者名をつぶやくと、その本がすでに本棚に入ってるかどうかをリプライする。二重買い防止のため、本屋さんなどで「うーん、これ読んだっけ?」な時に重宝してる機能だった。

 


»電子書籍制作代行についてはこちら

twitter Facebook mixi

2012/7/6 [18:17:26] (金) 天気

今週の、打ち合わせというのか飲み会で、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というこのアプリは無料で、中に有料の小説が収録されてます。無料サンプルもあるので、まずは立ち読み感覚でダウンロードして、気に入ったらその作品を購入してもらえるととてもうれしいです。

»電子書籍制作代行についてはこちら

「趣味は読書2」にtwitter経由検索

2011/5/26 [16:07:28] (木) 天気

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経由で検索するかな。

http://doncha.net/about.pl?c=help
http://twitter.com/dokusyo2

 

»電子書籍制作代行についてはこちら

ン年ぶりの発熱とか、twitterのRTとか

2010/9/7 [18:49:37] (火) 天気

日曜の夜から、ゲロと下痢と腹痛と発熱。トイレに行って、ゲロを先にするか下痢を先にするか、いっそ便器がふたつあれば、と思うような状態が、ほぼ一晩続いて驚く。朝、慌てて医者に言ったら「おなか壊しちゃいましたね」と、吐き気止めの胃薬、整腸剤、抗生物質を処方される。いや、センセ、それどころじゃないんですが、と思いつつ。当然仕事は休む。薬のおかげか、まず、吐き気はおさまった。とはいえ、熱と下痢で身動きできず、布団とトイレ。38度超の熱なんて何年ぶりだろうか。今朝になってもまだ腹痛と下痢、全身のだるさで、結局仕事は休む。
今になって、ようやく復活気味になってきたけど、まだ下痢と腹痛は残る。まったくポンコツな体は気合いが足りない。たぶん、この約二日間で40時間は布団で倒れてた。

ぶっ倒れる前に作ったもの。
twitterネタ。自分のtweetで RT(retweet)されたものを表示させる。というのを組み込んでみた。ふぁぼられ(お気に入り)を追いかけるのはうまいやり方が思いつかなかったけど、RTはAPIで取得できるので簡単だった。
こんなのがRTされてんのか、とちょっと面白い。
ttp://www.holeinthewall.jp/~butch/zakki/tweets.pl
↑これは、ケータイからも見られるようにと思って作った単純なシロモノ。Javascriptも使わずCSSも基本的なものだけ。
タイムラインをだら~っと流すほか、
* が自分のtweets一覧
@ がリプライ一覧
r がRTされた自分のtweet一覧
ShowRT が誰にRTされたかの表示
機能的にはこれだけ。リストも使えないし、ユーザーのグルーピングもできない。
とはいえ auのezwebから使えるんで、自分ではこれで満足。

当初、面白いの?これ、と思ってたtwitterだけど、簡単に自分だけの掲示板ができる、という理解でいいのか、最近は飽きずのおもしろがって眺めてる。欲しいネタがちゃんと流れてくるし、自分で集めるわけだから少ない雑音の中にも面白いものが多い。
どこかで「箱庭」という表現してる記事もあって、なるほどなあ、と。

さすがに明日は仕事に行かないとマズイから、晩飯食ったら、布団に戻ろう。ショボイなあ。

»電子書籍制作代行についてはこちら

profile

profile

 
doncha.net
名前:
飯田哲章
mail:
t2aki@mrh.biglobe.ne.jp
twitter:
t2akii

WEBサービス制作/電子書籍制作

検索
<<2020/2>>
      1
2345678
9101112131415
16171819202122
23242526272829

リンク

WINDOWS版サウンドノベル
おかえりください PC WINDOWS版サウンドノベル
『おかえりください』体験版

iPhone電子書籍アプリ
小説同人誌Select iPhone電子書籍アプリ
『小説同人誌Select』

[5 Page]« »
1 2 3 4 5

TOTAL:2885

2020 (7)
1 (2)
2 (5)
2019 (17)
1 (3)
2 (4)
3 (2)
4 (2)
5 (1)
6 (1)
8 (1)
10 (1)
12 (2)
2018 (21)
1 (3)
2 (2)
3 (2)
4 (1)
5 (1)
6 (6)
8 (1)
9 (1)
10 (2)
12 (2)
2017 (32)
1 (2)
2 (1)
4 (2)
5 (1)
6 (6)
7 (3)
8 (5)
9 (3)
10 (2)
11 (2)
12 (5)
2016 (41)
1 (5)
2 (5)
3 (2)
4 (3)
5 (4)
6 (6)
7 (2)
8 (2)
9 (3)
10 (1)
11 (4)
12 (4)
2015 (99)
1 (11)
2 (12)
3 (9)
4 (6)
5 (8)
6 (8)
7 (3)
8 (5)
9 (16)
10 (6)
11 (1)
12 (14)
2014 (112)
1 (16)
2 (5)
3 (6)
4 (12)
5 (16)
6 (19)
7 (9)
8 (6)
9 (4)
10 (8)
11 (6)
12 (5)
2013 (145)
1 (24)
2 (15)
3 (18)
4 (23)
5 (14)
6 (11)
7 (7)
8 (11)
9 (5)
10 (4)
11 (6)
12 (7)
2012 (103)
1 (1)
2 (1)
3 (4)
4 (3)
5 (7)
6 (26)
7 (17)
8 (5)
9 (8)
10 (10)
11 (11)
12 (10)
2011 (54)
1 (4)
3 (7)
4 (4)
5 (14)
6 (6)
7 (3)
8 (3)
9 (1)
10 (4)
11 (2)
12 (6)
2010 (70)
1 (12)
2 (7)
3 (6)
4 (6)
5 (3)
6 (10)
7 (6)
8 (4)
9 (3)
10 (4)
11 (3)
12 (6)
2009 (144)
1 (15)
2 (12)
3 (12)
4 (6)
5 (15)
6 (6)
7 (10)
8 (9)
9 (17)
10 (12)
11 (14)
12 (16)
2008 (148)
1 (10)
2 (6)
3 (10)
4 (11)
5 (13)
6 (10)
7 (13)
8 (19)
9 (18)
10 (12)
11 (13)
12 (13)
2007 (106)
1 (7)
2 (5)
3 (3)
4 (7)
5 (5)
6 (9)
7 (8)
8 (13)
9 (18)
10 (11)
11 (8)
12 (12)
2006 (158)
1 (28)
2 (28)
3 (25)
4 (7)
5 (9)
6 (7)
7 (12)
8 (13)
9 (10)
10 (7)
11 (6)
12 (6)
2005 (350)
1 (31)
2 (26)
3 (26)
4 (27)
5 (29)
6 (30)
7 (32)
8 (30)
9 (30)
10 (32)
11 (29)
12 (28)
2004 (292)
1 (24)
2 (24)
3 (29)
4 (27)
5 (28)
6 (25)
7 (26)
8 (24)
9 (12)
10 (19)
11 (26)
12 (28)
2003 (318)
1 (22)
2 (25)
3 (21)
4 (28)
5 (28)
6 (28)
7 (28)
8 (29)
9 (26)
10 (29)
11 (28)
12 (26)
2002 (317)
1 (29)
2 (26)
3 (26)
4 (25)
5 (28)
6 (30)
7 (27)
8 (21)
9 (25)
10 (27)
11 (28)
12 (25)
2001 (277)
1 (17)
2 (21)
3 (23)
4 (20)
5 (31)
6 (18)
7 (26)
8 (25)
9 (29)
10 (19)
11 (24)
12 (24)
2000 (53)
6 (9)
7 (4)
8 (2)
9 (3)
10 (1)
11 (15)
12 (19)
1999 (3)
7 (1)
10 (2)
1998 (18)
9 (9)
10 (7)
11 (2)