seri::diary

日常

コマンドラインからtweetするPHPスクリプト

PHP上でOAuth認証によるtwitterAPIが使用できるAPI「abraham-twitteroauth」の
使い方の練習の意味で、コマンドライン上からtweetするPHPスクリプトを書いてみました。

将来的にはbot作成を考えているのでその基礎研究みたいなもんですね。
PHPerの多くの方がこのネタやってますが、基礎は自分でやってみることが大事なのです。

ということで気にせず書きますw


本スクリプトの作成には下記の記事を参考にさせて頂きました。
PHP+OAuthでTwitter
実用! PerlでコマンドラインからTwitter投稿(OAuth対応)

twitterへのAPI登録等の事前手順は上記リンクを参照して下さい。


動作確認環境 :PHP5.1.6 (--with-curlオプション必須)
使用ライブラリ:twitteroauth0.2.0-beta3

<?php

	if($argc == 1)
	{
		echo "引数がありません。";
		exit();
	}elseif($argc >= 3)
	{
		echo "引数は一つだけです。";
		exit();
	}

	if($argv[1] == 'help')
	{
		echo "使い方 :  tweet [お前のsoul]";
		exit();
	}



	require_once('twitteroauth.php');
	
	//OAuth認証用key,tokenの設定
	define("consumer_key" , "[登録されたconsumer_key]");
	define("consumer_key_secret","[登録されたconsumer_secret_key]");
	define("access_token" , "[登録されたaccess_token]");
	define("access_token_secret" ,"[登録されたaccess_token_secret]");

	$to = new TwitterOAuth(consumer_key,
			       consumer_key_secret,
			       access_token,
			       access_token_secret);

	//TwitterへPOSTする
	$req = $to->OAuthRequest("https://twitter.com/statuses/update.xml",
				"POST",
				array("status"=>$argv[1]));	
	header("Content-Type: application/xml");

	//API実行結果の引数(XML)を表示
        echo $req;
?>

スクリプト起動用のshell

#!/bin/bash

date >> logfile.log

if [ $# -eq 0 ]
then
	echo "引数がありません"
	exit 1
elif [  $1 = "help" ]
then
	echo "使い方: tweet <お前のソウル>"
	exit 1
fi
	
php /home/seri/bin/tweet.php $1 >> tweet.log

以上のphpスクリプトとシェルをpathが通ったディレクトリに入れておくと
どっからでも

[shellスクリプト名] [投稿したい内容]

でtweetすることができます。(私の場合は/home/[user名]/binです。)


使用例:
こんなカンジで実行


ちゃんと投稿されました。「こまっつぃー」というのは登録したAP名です。
コマンドラインからツィート出来るからこまっつぃー
・・我ながらセンスが謎です。