ひまつぶし雑記帖

「趣味は読書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

 

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

paypal と 電子書籍のダウンロード販売(その3)

2010/6/26 [19:48:42] (土) 天気

ということで、知人、というか身内の同人誌ダウンロード販売ページを公開した。DRMフリーの電子書籍というかPDF、300円均一。
下町飲酒会駄文支部 日野祐太郎
この中では、「Vanish」!が完成度も高く抜けた傑作。次のグループが「あかるいほうへ」「アロイのやさしい神さま」。「猫神リスペクト」が佳品で、「赤貧遁走曲」はエピソードの長さがいちいちもったいない。
といったところかな。
ぜひ一度読んでみてください。身びいきをさっ引いても、かなりおもしろい小説群です。

 

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

paypal と 電子書籍のダウンロード販売(その2)

2010/6/21 [23:20:06] (月) 天気

その0.
購入ボタンはこんな感じ

item_number以外は必須。item_numberも、商品IDとして使うので、わたしの場合は必須。ユーザーがPaypalから戻ってきたとき・Paypalから即時通知があったときに、この商品IDでデータベースに照合する。

あらかじめ、Paypalで個人設定を仕込む。(以下とは別に、文字コードを日本語、UTF8に設定しておいた)

その1.
「ウェブペイメントの設定」

→自動復帰 オン
→復帰URL ユーザーが帰ってくるURLを設定
→支払いデータ転送(PDT) オン
→暗号化されていないウェブペイメントの受領拒否 オフ

購入ボタン自動生成で暗号化してないので、最後の設定はオフにしておく。

購入ボタンをクリックしてPaypalにいったユーザーが支払いを完了して「マーチャントに戻る」リンクをクリックしたら、復帰URLにパラメータを持って戻ってくる。それをスクリプトで解析する。以下はほぼほぼPaypalにあるサンプルコード(perl版)まんま。



戻ってきたら、GET でパラメータ=トランザクションIDを取得して、Paypalの管理ページ、個人設定にある、auth tokenと、定型のコマンドとともに、PaypalのサーバーにPOSTでアクセス。
そこで取得できるcontentを改行でばらして一行ずつ、って先頭の行がSUCCESSであればOK。それ以外だと決済が完了していないので、どうなってるのか調べる必要がある。
というのが「PDT」というヤツ。
ところが、これはユーザーが「マーチャントに戻る」というリンクで戻ってくれないと、情報が何も取得できない。もちろん、Paypalの方からメールがくるし、Paypalの管理画面を見れば、取引状況はわかるので、調べてユーザーに返事を出すこともできる。

でも、今回やりたいのはダウンロード販売。
支払いが終わったらすぐにダウンロードページに行きたいよね…といいつつ、Paypalの「マーチャントに戻る」リンクがまるで目立たない。これじゃ、ユーザーはここでブラウザを閉じて終了、だろう。現に戻ってくる率は20%もない、という記事もどこかで見かけた。なので、こちらは、もしユーザーが戻ってきたら、ありがとうございましたとか、確認にしばらくお時間くださいとか、表示を選択するためのモノとして使う程度。

そこで、以下のIPN(支払い即時通知)の出番。

その2.
「即時支払い通知(IPN)」

→通知URLを設定

支払いが生じたらPaypalから、通知URLあてに、パラメータを抱えてアクセスがある。それをスクリプトで解析。以下はサンプルコード(以下同文)



POSTされたパラメータをそのままに、コマンドを付加して、Papalに返すと、パラメータが正しいか間違ってるかだけ教えてくれる。パラメータが正しければ、料金を確認したり、トランザクションIDをチェックしたり。エラーがあったら、ログを吐き出し、正しければデータベースに登録してユーザーにダウンロードURL案内のメールを出す。

わたしはperlが少しわかる程度。それでもサンプルコードどおりに書けばほぼOK。ダウンロード販売ということで、データを受けてデータベースを使って商品を特定したり、ダウンロードURLを作ったり、というところがちょっと面倒だけど、難しいもんじゃない。
最悪、うまくいかないケースが生じても、Paypalからメールが来るし、Paypalの管理ページに行けば履歴を確認したりキャンセル処理ができるので致命的なことにはならない、はず。
それに、ダウンロード販売なので、面倒な在庫管理は不要。

ちなみに、無責任なことに、これを書いてる時点ではまだ本番でのテストはやってないので、あしからずご了承いただきたく。忘れないうちに自分メモ。

原稿があるなら、Paypalを使って、ダウンロード販売ですよ。たぶん、儲けるのは無理だけど、原稿を塩漬けにしてるぐらいなら、ネットに並べておいてもいいんじゃね、と。個人書店があちこちにできて相互にリンクできれば宣伝にもなって面白いんだろうから、お手伝いしますよー。

 

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

paypal と 電子書籍のダウンロード販売(その1)

2010/6/20 [16:00:33] (日) 天気

小説や漫画など、電子書籍を作るのは簡単。問題はどうやってそれを売るのか。
「ホームページに並べて・購入してもらって・ダウンロードしてもらう」
というのをどうすんだよ、てことで調べてみたメモ。
(ちなみに、作った電子書籍はDRMなしのPDFファイル)

結論から言うと。

Paypal のプレミア(以上の)アカウントを作れば、個人でも簡単にクレジットカードを使った小額決済ができて、ちょっと仕組みを作ればダウンロード販売までできる。
Paypalのアカウントは固定費不要。クレジットカード決済に審査も不要。一度の決済手数料は40円+3.8%~。驚く手軽さ気軽さだ。

ショップとユーザーの流れ
ショップを訪れたユーザーがページにつけられたPaypalの購入ボタンをクリックすると、Paypalの支払いページに飛ばされて、そこで支払い手続きとなる。クレジットカード番号やメールアドレスなどをPaypalに対して入力することとなる。Paypalの支払い完了ページに、「マーチャントに戻る」というわけのわからないリンクが目立たないようあるけど、これをクリックすると、ユーザーはショップに戻される。戻ってきたユーザーは、ショップが用意した「ご購入ありがとうございました」ページなどを見る。
こちらでユーザーを誘導する。

ショップの裏方(たとえばデータベース)とPaypalの流れ
それとはまた別に、Paypalは支払いが生じたら、ショップにお知らせしてくるので、それを元に、ショップはデータベースに登録したり、ユーザーにお知らせメールを発送したりする。
こちらでショップとして売買の確定をする。

上記のやりとりで、なにか不明点があっても、Paypalの管理ページを開いてみれば全部わかるので、後でチェックして対応することも簡単にできる。

image 

Paypalとのデータのやりとりでは
「誰が何を買ったのか」
だけがわかればOK。というかPaypalの役割はここまで。

ダウンロードURLを作って、そこでダウンロードできるようにするのは、ショップ側で作ることになる。

PDTとかIPNのサンプルコードなどの具体例は、以下次号、かな。

# ページは、あとは、本番でのチェックと原稿の校正だけ、となった。
# 七月にはオープン予定で。

 

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

個人でできるネットの小額決済はPayPalだな

2010/6/5 [19:18:19] (土) 天気

二日酔いでゲロりまくりの今日。…あれ?先週の土曜も同じ。で、そんなに飲んだ記憶もないのも同じ。ちょっと体調が悪いのかもしれない。

同人誌紹介ページを作ったのはいいけど
http://hino-yutaro.doncha.net/
通販の支払いをどうすんの?と。

ちょっと聞いてみると、同人誌の通販は、定額小為替の郵送とか、郵便振替が昔からよく使われているらしい。郵便局が意外にも便利だというのにちょっと感心。とはいえ、郵便局まで出かけなきゃいけないし、ネットで通販だし「購入ボタン」がほしいぜ、と調べてみた。

([2016/03/03 09:20:59]追記。今どきは、小為替は手数料が高くなったんで使われていない、とのこと)


PayPalがびっくりの便利さで驚いた。PayPalそのものは知ってたけど、どーせ英語だし使い勝手がわからんちんだろ、と。
https://www.paypal.com/myaccount/home
いつのまにやら、日本語の丁寧なサイトまでできていた。

メールでの決済
購入ボタン
ショッピングカート
の3種類が、固定費なし、無料で使える。決済手数料は40円+3.8%~。

とりあえず、一番簡単そうなメール決済を試してみた。いや同じ単語連発で申し訳ない。本当に簡単で驚いた。
手順としては、

・お客さんからメールなりで、注文を受け取る
・PayPalの管理ページで請求書を作る
・PayPalから支払いページへのリンクのついたメールがお客さんのところに届く
・お客さんはPayPalのページに行って、PayPalのアカウントで支払うかクレジットカード情報を入力して支払いを済ませる

すべてのやりとりの段階でいちいちPayPalから確認のメールが飛んでくるので見落としもない、だろう。

これだけでも十分、だ。
購入ボタンをつけるほうがいいんだろうけど、同人誌紹介ページが、まるでECサイトみたいに見えるのもどうなんだろう、と思うので保留。

同人誌に限らず、個人がネットで展開するのに、PayPalはほんとに便利ですよ。眠っている原稿、塩漬けにされてる原稿があるなら、自分でネットに並べてみませんかー。


paypalと絡めるかどうかは扱うモノ次第だろうけど、ネットショップで本格的に始めるのも、ありですな。

 

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

token secretの保存

2009/12/26 [17:58:01] (土) 天気

しかたないんで、自前でセッション管理してみることにした。ユーザーのクッキーに記録するのはIDだけ。あとはそれを見て、DB_Fileに記録したaccess token と token_secret を引っ張り出す。
twitterの OAuth で使うtokenは永続性がある=ずーっと使えるって話だからこんな面倒なことになるのだ。その場限りなら、ユーザーのクッキーだけでもまあギリギリOKだろうと思ったんだけど、ずっと使えるトークンだと、ユーザーのブラウザのクッキーに記録させるのはちょっと怖いじゃないか。で、ずっと使えるのに、クッキーをその場限りにしておいて、いちいちアクセスさせるとAPI制限に引っかかりそうだし。

てことでコードを書くだけ書いた。それでも、これでも、やっぱり。面倒くさいだけのOAuth使うヒマがあったら、Basic認証でイケよ、どうせセキュリティ的には目くそ鼻くそだぜ、と思う自分がいて、モチベーションが上がらないまま、週末なのですでに赤ワイン。

とはいえ、yahooとかmixiとかgoogleとか、OAuthで繋ぐサービスがあるから、調べておいて損はない、はずだよなぁ。

ちなみに縦書きtwitter、「たてたったー」は、まだBasic認証です。

[12/27 16:26:52]
哀しいほどハマったので、メモ。 perl の Net::OAuthは、わたしには手におえないことがわかった。ちょろっと改造しようにも、オブジェクト指向とやらで、わたしのスキルではソースを追えない。ので、OAuthも自前で作った。そこでのハマりのメモ。

その1.
署名は、メソッド(GETとかPOST)、リクエスト先のURL(パラメータは入れない)、URLにくっつけるパラメータ。の3種類を合わせて元になる文字列を作る。このとき、各々URLエンコードが必要なのだが、ハマったのがURLにくっつけるパラメータ。
key=value&key=value形式でvalueをURLエンコードするのはいいんだけど、一度URLエンコードした上で&で繋いでひとつの文字列にしたら、さらに全体をURLエンコードをする必要があった。2重にURLエンコードするような感じ。
その2.
署名に使うシークレットキーは、コンシューマーキーとアクセストークンのシークレットキーがある。twitterの場合なのかHMAC-SHA1の場合なのか調べてないのだが、アクセストークンを取得するまでは、当然ながらコンシューマーキーしか手元にはない。
形式は各々URLエンコードして&で繋いで、それをキーに使用する。
コンシューマーシークレット&アクセストークンシークレット
まだアクセストークンのないフェーズでも&が必要だった。
「コンシューマーシークレット&」というケツに&をつけてキーにする。

http://developer.yahoo.co.jp/other/oauth/api.html
http://developer.yahoo.co.jp/other/oauth/signinrequest.html

さすが yahoo!実例が載っていて大助かりだった。

 

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

profile

profile

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

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

検索
<<2019/9>>
       
1234567
891011121314
15161718192021
22232425262728
2930

リンク

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

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

[5 Page]« »
1 2 3 4 5

TOTAL:2875

2019 (14)
1 (3)
2 (4)
3 (2)
4 (2)
5 (1)
6 (1)
8 (1)
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)