コマネタ帳(旧) by iyoupapa

PCや土いじりやゲームやオモチャ、思いつくまま細切れネタを書き散らかす日記

Creative Commons Licenseiyoupapaが書いたコマネタ帳の文章は「Creative Commons 表示-継承 2.1 日本」ライセンスです。写真については私のFlickrで配布しています。新しい「コマネタ帳」に移転しました。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[プログラミング]TwitterのBotをOAuth対応にする

第15回北海道開発オフ@JRHokkaidoSapをOAuth対応に修正したときのメモ。

1.アプリケーションの登録

  • アプリケーション作成者のアカウント(この場合@iyoupapa)でTwitterにログインして「Twitter / アプリケーション」から「Register a new application」を選択する。
  • 「Application Icon」を設定する。
  • 「Application Name」にアプリケーション名を適当に入れる。
  • 「Description」に最低30文字を入れる。
  • 「Application Website」にこのブログのURLを入力する。
  • 「Application Type」を「Client」にする。
  • 「Default Access Type」を「Read & Write」にする。
  • 個人なので、「Organization」、「サイト」は空欄にする。
  • 「Use Twitter for login」はチェックしない。
  • CAPTCHAを入力して登録する。
  • 登録後の「Consumer key」と「Consumer secret」をコピペ保存する。

2.アクセストークンの取得

  • Net::Twitterを準備する。Windows の ActivePerlの時はPPM(Perl Package Manager)からNet-Twitterをインストールする。
  • Twitterに「Botが動作するアカウント(この場合@JRHokkaidoSap)」でログインする。
  • 以下のコードにConsumer keyとConsumer secretを書き込んで実行する。
  • 表示されたURLにアクセスして、アクセスを許可する。
  • 数字が大きく表示されるので、その数字を先ほどのスクリプトに入力する。
  • 「Access token」と「Access token secret」が表示されるのでコピペ保存する。
#!/user/bin/perl
use strict;
use warnings;

use utf8;
use Encode;
use Net::Twitter;

binmode STDOUT, ':encoding(shiftjis)';
binmode STDERR, ":encoding(shiftjis)";

my $nt = Net::Twitter->new(
  traits      => ['API::REST', 'OAuth'],
  consumer_key  => "CONSUMERKEY",    # ←
  consumer_secret  => "CONSUMERSECRET", # ←
);

my $access_token;
my $access_token_secret;

unless ( $nt->authorized ) {
  # The client is not yet authorized: Do it now
  print "Authorize this app at ",
   $nt->get_authorization_url,
   " and enter the PIN#\n";

  my $pin = <STDIN>; # wait for input
  chomp $pin;

  my($access_token, $access_token_secret, $user_id, $screen_name) = $nt->request_access_token(verifier => $pin);
  #  save_tokens($access_token, $access_token_secret); # if necessary
  print "Access token: ", $access_token, "\n";
  print "Access token secret: ", $access_token_secret, "\n";
}

3.本体スクリプトの修正

  • ログイン部を修正する。
sub initTwitter
{
  $bot = new Net::Twitter( 
    traits           => ['API::REST', 'OAuth'],
    consumer_key     => $CONSUMER_KEY,
    consumer_secret  => $CONSUMER_SECRET,
  );
  $bot->access_token($ACCESS_TOKEN);
  $bot->access_token_secret($ACCESS_TOKEN_SECRET);
}

4.多分OK!

お疲れ様でした。…いやまだ実環境に適用していないんだけどw。

5.おまけ

PPMもNet::Twitterもプロクシを超えるときは環境変数HTTP_PROXYに”http://proxyhost:8080/”などと設定しておけばいい。LWP::UserAgentは環境変数だけでは認識しないので、env_proxyを呼び出す。

  my $ua = LWP::UserAgent->new;
  $ua->env_proxy;

これまでプロクシのない環境ばかりだったので、こんな基本も知らないのさ><。

6.Thanks

スポンサーサイト

[日記]メガジョッキオフ

メガジョッキ土曜日、出先でTwitterしたら@yozaki氏の帰札迎撃オフことメガジョッキオフだったことを思い出しました。参加する予定はなかったんだけど、気がついたら参加する流れへ。いつも「行きたいけど行けない><」ばっかりじゃねぇ、ってことで急遽参戦。以下敬称略で。

参加者は@yozaki@mamitann@irasally@hadzimme@tuka@32と俺。多分オムライスの人が遅れるだろうと遅めに行ったらまだ@mamitannと@yozakiしかいないwww。@hadzimmeは…と思ったら携帯を忘れた@irasallyをピックアップしたらしい。オープニングから飛ばしすぎです><。@32は仕事が押してる模様。

と、ここで@tukaにスネークされる。直ぐに探し始めるが@irasallyの野生のカンの方が圧倒的な勝利を収める。侮れん、この人は。その後、通路を不法占拠。怪しげな集団を迷惑そうに見るおばさん…ごめんなさい、えぇ邪魔ですよね。@32は現地直行にしてとりあえず移動開始。いきなり@mamitannが「場所知らない」って言い放つ。オイ。

無事串鳥着。上のお店に通されるとき、自動音声が「いらっしゃいませ」を繰り返す…が最後で「ありがとうございました」。えぇ、殿は我らが@tukaです。器械にもDISられる可哀相な人です(あれ?)。

6人で予約してたのに一人増えたので(俺、俺だよ)、急遽席を替えてくれる店員さんGJ。まずはメガジョッキですよ、やっぱり。大きいし重いし、かなり大変。

飲みながら話した内容はよく覚えていないんでかいつまんで…。

  • @mamitannが「一つって一串なの? 普通一皿に5本とか載ってくるのに!」 ごめんね、この店は一本単位なんだよ、ついでに言えばカラシもないよ。
  • @irasallyから酒豪伝説いただいた。これは効いた。[後で買う]タグを密かにつけておく。
  • @mamitannからスープカレー飴。さすがに食べられません、これは。
  • @yozakiが@irasallyに官能的な何かをプレゼントしていた。あまりに官能的なので、後は若い二人に任せようと痛感した。
  • @hadzimmeが変態とかネタにしてたら@h_hiroにふぁぼられる。お礼に@hadzimmeがスープカレー飴をお届けします、多分。
  • @yozakiが「男前豆腐ケーキ」を出す。男前ネタで盛り上がる。ケーキは普通にうまい。しかし男前5箇条は忘却の彼方に飛んだ。
  • 大量のネギの載った串→グリーン→エコ、という単純連想。そして@yozakiが葱を落としまくり環境破壊とDISられる。
  • 「風俗ビルの一階のウナギ屋はそこで食べて上のお店を制覇するため。全店クリアすると一階でウナギを食べて2周目へ」→スパルタンX的マッチポンプな店舗構成。おそるべしすすきの歓楽街。つうかその発想はなかったわwww。
  • ビデオを回す@32、録音する@tuka。その間隙を縫って美味しいネタを振る@yozaki。悔しがる@32。
  • これだけ話しているのに普通にTimeLineでも会話して、大量の写真を取る@tuka。マルチスレッディングですね、わかりません><。
  • 彼氏ネタを振るとどんどん話す@mamitann、中々彼女ネタに乗ってこない@tuka。どっちも幸せ感が顔に出てますな。

時間が来たので@mamitannと@32はここでお別れ。お疲れ様~。

2次会は近くのつぼ八。@tukaとお仕事話したり、@irasallyがいい女だって話してたような気がする。@irasallyに「iyoupapaの嫁は嫁という言葉は似つかわしくない」とか言われたけど、いくら持ち上げてもうちの嫁は持ち上がりませんよ(質量的に)。若干一名拗ねてたようだがまぁいいか(違。あっという間に閉店時間。

3次会は@hadzimmeさんち。いや~ごめんね~。@yozakiとちんたら歩いて移動。@yozakiがよくTwitterで絡んでるあの人とこの人の話をサラッと聞く。んんー、人それぞれ色々考えがあるんですね(謎。

おー綺麗な部屋だわ。とりあえずのだめを見つけたので読んでおく。@hadzimmeのノートにオプティカルネットワークが出ててしばし話してみる。俺は面白かったが@hadzimmeはじゃまくさかったかもしれない><。

…あれ、いつの間にか寝てたらしい orz。10時に嫁からの電話で起きた(滝汗)。ごめんよ@hadzimme、と言うことでとっとと帰る。そしたらハンカチ忘れたらしい><。一緒に出た@yozakiと途中で別れて帰宅~。

久々にめちゃ呑んだわ。でも調子に乗って飲み過ぎたようで参加者各位には謹んでお詫び申し上げますm(_ _)m。これに懲りずまたオフ会しましょう(;´∀`)。なお、間違いなどありましたら米でもReplyでも教えてね。

[ネット]Twitter Botをいじってもらいました。

As a Futurist...」さんで開発オフのときのソースをいじってくれました。私はWindowsでやっていたのでCPANの使い方を端折りましたが、UbuntuでのCPANインストール手順がしっかりまとまっていていい感じです。しかも文字コードの処置もちゃんとしていただいてます。確かにあの時は日本語を通していませんでした…陳謝。

第2弾でPostをIM経由にしています。この後どう料理が進むのか興味があるのでLDRにポチッと登録しておきました。で、せっかくなんだからトラックバックしてくれてもいいのになぁ。こっちがトラバを受け取れていないってオチじゃないと思うけど。

前回の開発オフをサボってしまったため、次のネタを用意したいところですが…思いついたのが「キャズムの向こうの人たちにRSSやSBMを使ってもらう」という意味不明なテーマ。さて、どうなりますやら。

Refs:

[プログラミング]ついカッとして @JHWHokkaido を作った。

2/23~2/24の荒天は凄かったですね。被害に遭われた方々にお見舞い申し上げます。

幸いにして俺は外出する予定もなく、いつも通りに過ごしていました。とはいえ、 JR の状況は @JRHokkaidoSap で随時チェック。「これなら JR 以外の情報も欲しくね?」と思い始めまして、勢いで北海道の高速道路状況を配信する @JHWHokkaido なる物を作ったのでした。 JH+HighWay で JHW などと考えていたのですが、 JH なんて既にねぇよ、バカだね俺ヽ(`Д´)ノ 。

今回はダイスロールボットのソースを流用したので、「@」を投げると最新状況を「@」で返信してくれます。調整不足で5分に1回 Update しているようですから、 Follow しないで「@」を使うのも手かも知れません。

情報のフォーマットが汚いのですが、どうすればいいか思いつきません。ご意見募集中ですm(_ _)m。

2008/2/26 追記

@hadzimmeさんから指摘していただいたので、方面毎にポストを分けました。道央道(旭川方面)、道央道(室蘭方面)、札樽道、道東道の別です。深川留萌道は情報が出てくるのか不明です><。旭川紋別自動車道は対象外です><。

「@」での問い合わせの時に「道央」とか「樽」と付けてあげると、一致する高速の分だけ返信します。該当する高速が無いときは全道路分返しますので諦めてください。

続きを読む

[プログラミング]Twitter Botの続き

[プログラミング]北海道開発オフでTwitter botを作ったよ | コマネタ帳」での残務をこなします。かなり日数が空いてしまいましたが、少しは進捗したところをお見せしないと、前回の記事をブックマークしたりはてなスターつけたりして頂いた値がなくなります><。Perl用語がかなり不自由なんで、突っ込みどころ満載のエントリですが良しなにお願いします。

続きを読む

[プログラミング]北海道開発オフでTwitter botを作ったよ

第1回の北海道開発オフ部に参加してきました。オフの状況は別途レポートするとして、作っていたサイコロ振りボットがここまでできたよ、という「作業報告」をしたいと思います。あれだけ黙々と作業してて、何もできてないってのもあれなんで。

今回はユーザーと対話できるBotを考えていました。内容はともかく、とりあえずテンプレートとして使える方向を目指します。

2008/02/16 追記

[プログラミング]Twitter Botの続き | コマネタ帳」に続きを書きました。

続きを読む

[ネット]@JRHokkaidoSapがまとめWikiに載ったよ

News Twitter まとめ Wiki」の「天気・交通情報系」ページで@JRHokkaidoSapを紹介していただきました。ついったー部新年会@道民部でも「中の人」が定着していたようで、くすぐったいことと言ったらありません。重要なことは「Net::Twitter」と「Web::Scraper」がやってくれてますからね。

肝心の@JRHokkaidoSapですが、前回のエントリの後でエンコードが間違っていたことに気付きました(大汗)。波ダッシュが化けるので、全角チルダに強制置換する処置も含めて最新のコードを置いておきます。

続きを読む

[プログラミング]JR北海道の札幌近郊の運行状況をTwitterにポストする

関東のJR運行状況botはTwitterにいるのに、札幌圏のbotはなんでいないのかなと思ってTwitterしたら、highness(smokeymonkey)さんが「[-*煙猴*-]: JR北海道の運行情報をお知らせするJRHokkaido」として反応してくれました。しかし、残念ながら現在は@JRHokkaidoは削除されています。

せっかくなので、これを元ネタに、何とかTwitterにポストしてやろうと粘ってみました。最初はYahoo PipesでHTMLからRSS Feedに変換しようとしたのですが、Yahoo Pipesはキャッシュが利くようで、何時間経ってもRSSが更新されません。仕方がないので他力本願は諦めて、Perlでプログラムすることにしました。

札幌圏の運行状況を10分ごとにチェックしています。全道一括なども可能ですが、いきなり手を広げるのは面倒なんでごめんなさい。

ごく普通のWindows XPで動いているので、多分きっと転けます。間違った情報を流すかも知れませんので、自己責任でご利用ください。

続きを読む

skin presented by myhurt : BLOG | SKIN

FC2Ad

  
copyright © 2005 コマネタ帳(旧) some rights reserved. Powered by FC2ブログ