スポンサーサイト

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

[PHP] twitter に自動つぶやきをする bot の作成

BASIC認証からOAuth認証に切り替える方法を探している方はこちら
[PHP/Twitter] なるべく簡単にBASIC認証で作っていた bot をOAuth認証へ切替えるための作業をまとめてみた


正確には現在使っているアカウントを利用して、そのアカウントから手動ではなく自動でつぶやきがされるということで、bot といえるのかどうかわかりませんが、そういうものを作ってみたという話。

twitter については、APIの仕様は公開されているので、それにしたがって PHP でも Perl でも何からでも POST 送信ができれば問題ないらしい。

参考 : [観] Twitter API 仕様書 (勝手に日本語訳シリーズ)
http://watcher.moe-nifty.com/memo/2007/04/twitter_api.html

API 仕様を読めばできるわけですが、端から端まで目を通すのも面倒なので、
作り方を解説しているサイトを拝見することにしましょう。

■[twitter][php][api]PHPでTwitterに投稿
http://d.hatena.ne.jp/hirataka522/20080126

やってることはシンプルです。
stream_context_create() など使って関数的にはごちゃごちゃしてますが、ユーザ名とパスワードで認証をさせたうえで、送信したいメッセージを送っています。

というわけで、ユーザ名とパスワードを自分のものに書き換えて、メッセージを適当なものにすればOK。ただ、それだけではメッセージが固定で面白くないので、メッセージはスクリプト内で何か生成してやる必要があります。

たとえば名言・格言を吐くものであれば、名言・格言の文字列をテキストかデータベースにもってやって、そこからランダムで選んで送信するものでいいでしょう。あとは cron なり何なりで定期的にそのスクリプトが叩かれるようにすれば、定期的に名言・格言を吐く bot のできあがりです。

企業さんの bot であれば、企業さんサイトで持っているCMSに組み込むとか、システムに組み込むのが面倒であれば、RSSフィードを読み込んでその内容を送信させるとかにする形が考えられます。

また、自分へのリプライに対するつぶやきを行う場合は、こちらがわかりやすいかと。

Twitterのジョセフbotに返信機能が付きました
http://palemag.kazeki.net/blog/archives/487

わかりやすい解説がされているのでそのままなのですが、さっき更新を行ったときに update.xml へアクセスしたのに対して、mentions.xml へアクセスして自分へのリプライのリストを得るのが違うところです。

そのリストから内容を読み取って、スクリプト内でいろいろ加工して(しりとりとか、連想単語とか、翻訳とか)、その結果をつぶやくようにすればいいはず。

追記(2009/12/03):
専用アカウントにしたので晒しておきます。
戦国呟介(せんごくつぶやきのすけ)です。ネーミングセンスは気にしないでね☆ミ
http://twitter.com/sengoku_tweet
↓こんな感じ。

[BOT 武将のひとこと] 木曾義在 曰く、「2~3分で済む寝癖の直し方」 http://r.nanapi.jp/2257/less than a minute ago via API



追記(2010/04/28):
twitter で BASIC認証が使えなくなるというアナウンスがあり、おそらく上記の方法は使えなくなります。
前述のURL([twitter][php][api]PHPでTwitterに投稿)でいうと、


$result = file_get_contents($url.$params , false, stream_context_create(array(
"http" => array(
"method" => "POST",
"header" => "Authorization: Basic ". base64_encode($username. ":". $password)
)
)));


この部分ですね。BASE64エンコードをかけてBASIC認証を使っています。

TwitterのBASIC認証廃止、企業ユーザーが知っておくべきこと
http://www.itmedia.co.jp/enterprise/articles/1004/28/news012.html

というわけで OAuth認証 を使う必要があります。
戦国呟介も BASIC認証を使ってるので修正する必要があるなあ。また作業を終えたらご報告します。

自分用メモ:
OAuth認証を自作する!(php+twitter)
http://pavane.rdy.jp/archives/144

[PukiWiki]
twitter/PHP でつぶやき投稿(OAuth認証)
http://hodade.adam.ne.jp/itmemo/index.php?twitter%2FPHP%A4%C7%A4%C4%A4%D6%A4%E4%A4%AD%C5%EA%B9%C6%A1%CAOAuth%C7%A7%BE%DA%A1%CB

PHPでTwitter APIのOAuthを使う方法まとめ - 頭ん中
http://www.msng.info/archives/2010/01/twitter_api_oauth_with_php.php

追記:2010/05/10
[PHP/Twitter] なるべく簡単にBASIC認証で作っていた bot をOAuth認証へ切替えるための作業をまとめてみた

OAuth への変更についてけっこう書いてみたら長くなったので別エントリにしました。上記参照ください。
関連記事
スポンサーサイト

テーマ : Twitter
ジャンル : コンピュータ

comment

管理者にだけメッセージを送る

No title

あまり追記追記でもうっとうしいので、コメントにメモしておこう。

OAuthプロトコルの中身をざっくり解説してみるよCommentsAdd Star
http://d.hatena.ne.jp/yuroyoro/20100506/1273137673
検索フォーム
リンク
最新記事
最新コメント
カテゴリ
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。