2011年11月28日月曜日

Net::Twitter::Lite でつぶやいてみる。

①bot用アカウントを作成し、キーを取得。

bot用のアカウントを作成したら、以下のURLにアクセス。
http://dev.twitter.com/apps
「Creat a new application」をクリックする。
Name:
希望のアプリケーション名
Description:
アプリの説明。短すぎると怒られる。
Web Site:
自分のブログなど。
アプリケーション名をクリックすると飛ぶURL
※bot用のtwitterページでよい。
Callback URL:
空欄のまま。
Developer Rules of the Road には、内容を確認の上「Yes, I agree」にチェック


登録できると以下の画面が表示される。

画面下の「Create my access token」をクリック
※これを行わないとaccess tokenが発行されない。

OAuth toolタブをクリックすると以下の画面が表示される。
ここに表示された内容をPerl側で利用します。

②Perl側の記述
※あらかじめ、以下をCPANでインストールすること。
cpan> install YAML::Tiny
cpan> install Net::Twitter::Lite;

以下、ソース
twitter_bot.pl

config.yml


動かしてみる。



ちゃんと発言できた!!


※Net::Twitterをいれるのは難しい。Mooseベースらしい。
※昔はUser、Passwordでできたらしいが、今はOAuthをつかわないといけない。
※つぶやく文言はUTF8でdecodeする必要がある。
2012/08/17 追記
Twitterの設定画面で、settingsタブの「Application Type」で、Write権限があるものを選択しておかないとツイートできないです。

2011年11月21日月曜日

PHP5.1.6からPHP5.3.3へのバージョンアップ

※これは個人的なメモです。実際に試すときには、個人の責任でお願いします。参考程度にお読みください。

個人用サーバー(某VPS CentOS5.7)のPHPのバージョンアップを行った時のメモ。
CentOSの標準リポジトリでPHP5.3のパッケージが用意されているっぽいので、
PHP5.1.6がインストール済みのCENTOS5.7にphp53パッケージで、PHP5.3.3をインストールする。

きっかけ
FacebookAPIをつかって、「いいね」の判定をしようと思い、サンプルを動かしたが、以下のエラーが発生した。
PHP Fatal error:  Call to undefined function json_decode() in/home/ftpuser/htdocs/ikel_test/parse_signed_request.php on line 14,
どうやら、parse_signed_request.php内で利用しているjson_decode関数は
PHPのバージョンが5.2.0のものからだそうです。
※「いいね」判断の内容はこちら
http://developers.facebook.com/docs/authentication/signed_request/


①サーバーへインストール済みのPHP関連のパッケージの確認
以下のコマンドを使って、インストール済みのPHP関連パッケージを確認
#  rpm -qa | grep php
php-cli-5.1.6-27.el5_5.3
php-mysql-5.1.6-27.el5_5.3
php-common-5.1.6-27.el5_5.3
php-pdo-5.1.6-27.el5_5.3
php-5.1.6-27.el5_5.3
php-mbstring-5.1.6-27.el5_5.3
php-pear-1.4.9-6.el5
php-devel-5.1.6-27.el5_5.3


②CentOSのphp53のパッケージを確認
以下のコマンドをつかって、CentOSのリポジトリphp53のパッケージを確認
# yum list php53*
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: rsync.atworks.co.jp
 * extras: rsync.atworks.co.jp
 * updates: rsync.atworks.co.jp
Available Packages
php53.x86_64           5.3.3-1.el5_7.3
php53-bcmath.x86_64    5.3.3-1.el5_7.3
php53-cli.x86_64       5.3.3-1.el5_7.3
php53-common.x86_64    5.3.3-1.el5_7.3
php53-dba.x86_64       5.3.3-1.el5_7.3
php53-devel.x86_64     5.3.3-1.el5_7.3
php53-gd.x86_64        5.3.3-1.el5_7.3
php53-imap.x86_64      5.3.3-1.el5_7.3
php53-intl.x86_64      5.3.3-1.el5_7.3
php53-ldap.x86_64      5.3.3-1.el5_7.3
php53-mbstring.x86_64  5.3.3-1.el5_7.3
php53-mysql.x86_64     5.3.3-1.el5_7.3
php53-odbc.x86_64      5.3.3-1.el5_7.3
php53-pdo.x86_64       5.3.3-1.el5_7.3
php53-pgsql.x86_64     5.3.3-1.el5_7.3
php53-process.x86_64   5.3.3-1.el5_7.3
php53-pspell.x86_64    5.3.3-1.el5_7.3
php53-snmp.x86_64      5.3.3-1.el5_7.3
php53-soap.x86_64      5.3.3-1.el5_7.3
php53-xml.x86_64       5.3.3-1.el5_7.3
php53-xmlrpc.x86_64    5.3.3-1.el5_7.3 

pearが見当たらないが、後でインストールすることにする。


③Apacheの停止
既存のPHP5.1.6を削除する必要があるので、Apacheを停止
# /etc/rc.d/init.d/httpd stop


④既存PHP5.1.6を削除
# yum list php php-*
# yum -y remove php php-*


⑤php53のインストール
# yum -y install php53 php53-mbstring php53-mysql


⑥Apacheの起動
# /etc/rc.d/init.d/httpd start


⑦PHPのバージョン確認
# php -v
PHP 5.3.3 (cli) (built: Nov  2 2011 23:35:50)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

なんとかこれで「いいね」判断できるようになったかな。

参考:http://okiraku-server.net/server/2011/05/27178.html

2011年11月14日月曜日

Facebookに怒られた

ここのところ、Facebookに怒られっぱなしである。

仕事などの関係でFacebookを使わないといけないのだが、
「セキュリティチェックを実行してください」となりログイン出来ない。

まあこんな感じなので、「Enter a phone number」をクリック
以下の画面がでるので、ケータイ電話番号(最初の0は抜く。「090」なら「90」ですね)を入力し「テキストを送る」にしてみる。

すると

でも、ケータイにはなんにもメッセージがきません。

次に、「電話をかける」にしてみると、
以下の画面が表示される。

「Our systems are currently overloaded. Please try again in a few minutes.」
今、都合わるいから、数分後にやりなおしやがれください、とのことなので、
何回もやっているのだが、ずっと同じ・・・。コマッたものだ

この状態がもうかれこれ1週間くらい。。。
時間をみては、同じ事の繰り返し・・・。マジでこまる。



ということを、ブロクにかきながらやっていたら、変化が!!
上記の状態でいつもどおり、番号を入力し、続行をクリックしたら、

キターーーーー。
そしてケータイが、ブルブル。
電話にでると、音声合成のメッセージで暗証番号が告げられました。

そして、今まで通りFacebookが利用できるようになりました。
よくわからんが、何回も根気よく、電話をかけさせれば解決できるのか?

まったくもってめんどくさいです。