PHPで、はてなハイクのボットを作ることにしました。
Twitterのボットは作ったことがあります。
しかし、はてなハイクと認証の方式が違います。Twitterの投稿はOAuth認証ですが、はてなハイクはベーシック認証です。
ネットで調べて見つけたのがこちらのページ。
はてブの WebHook を利用して PHP スクリプトではてなハイクに投稿するサンプル – カミクズヒロイ /bin
そのものズバリのサンプルが載っていたので、そのまま使わせていただきます。ありがとうございます。
サンプル
function haikuPost($st, $kw, $id, $pw, $src, $url){
require_once 'HTTP/Request.php';
$req = &new HTTP_Request();
$req->setURL($url);
$req->setBasicAuth($id, $pw);
$req->setMethod(HTTP_REQUEST_METHOD_POST);
$req->addPostData('keyword', $kw);
$req->addPostData('status', $st);
$req->addPostData('source', $src);
$req->sendRequest();
return $req->getResponseBody();
}
require_once 'HTTP/Request.php';
$req = &new HTTP_Request();
$req->setURL($url);
$req->setBasicAuth($id, $pw);
$req->setMethod(HTTP_REQUEST_METHOD_POST);
$req->addPostData('keyword', $kw);
$req->addPostData('status', $st);
$req->addPostData('source', $src);
$req->sendRequest();
return $req->getResponseBody();
}
説明
- $st
投稿の本文です。 - $kw
キーワードです。はてなハイクは投稿の本文だけでなく、タイトルのようなキーワードを付けることができます。
なお、この項目を省略し、投稿の本文を「キーワード=本文」とすることでもセットされるようです。 - $id
はてなハイクのユーザーIDです。 - $pw
はてなハイクのパスワードです。
はてなハイク – APIで調べます。 - $src
クライアント名をセットします。実際ははてなハイクのキーワードを指定します。 - $url
「http://h.hatena.ne.jp/api/statuses/update.format」をセットします。「format」のところは「json」や「xml」をセットします。情報をどのように取得するかが問題になりますが、投稿の場合は帰ってくる情報はさほど重要ではないかもしれません。詳しい使い方ははてなハイク – APIで確認して下さい。
これらを適当にセットして次のとおり書けば投稿できます。
$result = haikuPost($st, $kw, $id, $pw, $src, $url);
echo $result;
echo $result;
補足
気になったのは「HTTP/Request.php」の部分。
「PEARのHTTP_Requestとやらをインストールしなければならない?」と思い、色々調べましたが、分かりません。
私はロリポップのレンタルサーバを使っているのですが、「ひょっとすると元からインストールされているのかも」と思い、試しに上のサンプルを実行したところ、投稿できてしまいました。
コメント
[…] 先日、PHPを使ってはてなハイクに投稿する方法を書きましたが、Twitterに投稿する方法も書いておきます。 詳しくはPHP+OAuthでTwitter – SDN Projectに書かれています。ありがとうございました。 […]
[…] 先日、PHPを使ってはてなハイクに投稿する方法を書きましたが、Twitterに投稿する方法も書いておきます。 詳しくはPHP+OAuthでTwitter – SDN Project(リンク切れ)に書かれています。ありがとうございました。 […]