M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2010年8月10日 23:34

リカちゃん電話botは位置情報付きツイートするべきだ

このエントリーをはてなブックマークに追加 mixiチェック

ツイッターでは、リカちゃん電話botっていうのが人気みたい。

Twitterlocation1
▲リカちゃん電話bot

でもぬるいような気がする。

こうあるべき。

Twitterlocation2
▲CLちゃん電話bot

以下ソース。

Filename: location.yaml

--
lat: '24.373446'
long: '124.115982'
place: 石垣島フサキビーチ

Filename: twit_location

#!/usr/bin/perl
 
use strict;
use warnings;
use Config::Pit;
use Encode;
use File::Spec;
use FindBin::Real;
use Net::Twitter;
use utf8;
use YAML;
 
# 初期設定
 
my $keys = YAML::LoadFile(
  File::Spec->catdir( FindBin::Real::Bin(), 'consumer_keys.yaml' )
);
my $data = YAML::LoadFile(
  File::Spec->catdir( FindBin::Real::Bin(), 'location.yaml' )
);
 
my $nt  = Net::Twitter->new(
    traits => [qw/API::REST OAuth WrapError/],
    consumer_key    => $keys->{consumer_key},
    consumer_secret => $keys->{consumer_key_secret},
    ssl => 1,
);
my $pit = pit_get( 'twitter.com@CLCLCL' );
$nt->access_token       ( $pit->{access_token}        );
$nt->access_token_secret( $pit->{access_token_secret} );
 
# 処理
 
my $arg;
$arg->{status} = decode_utf8( $ARGV[0] );
if ($ARGV[1]) {
  if ( $ARGV[1] =~ m/^.*?(\d+)$/ ) {
    # 第2引数の数字部分
    $arg->{in_reply_to_status_id} = $1;
  }
  if ( $arg->{in_reply_to_status_id} ne $ARGV[1] ) {
    # 第2引数が数字のみでなかった場合
    (my $reply = $ARGV[1]) =~ s/^.*?(\w+)\/status.+$/$1/;
    $arg->{status} = '@'.$reply." $arg->{status}";
  }
}
 
#緯度経度
 
$arg->{lat } = $data->{lat } if $data->{lat };
$arg->{long} = $data->{long} if $data->{long};
 
# 表示
 
print encode_utf8("$arg->{status}\n");
print 'length: ' . length($arg->{status}) . "\n";
if ( $arg->{in_reply_to_status_id} ) {
  print "in_reply_to: $arg->{in_reply_to_status_id}\n";
}
 
# post
 
my $res = $nt->update( $arg );
print $nt->http_message."\n";
exit;
__END__

ほかのファイルや、使い方は、

M.C.P.C.: 実用! PerlでコマンドラインからTwitter投稿(OAuth対応)+In-Reply-To対応さらに改良版 [blog.dtpwiki.jp] 参照。

ちょっと手をかけると面白くなることってあるよね。

投稿 大野 義貴 [Web] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3309

コメントする