2009年01月25日 15:37

トラックバック送信の仕様と実装メモ

| http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/431

ちょいと使いそうだったんでメモ

下記ページがとても参考になります。

トラックバックを送信するための仕様

  • HTTP POST でリクエストを送信。GETは廃止
  • コンテンツのコンテントタイプは必ず application/x-www-form-urlencoded

指定可能なパラメータ

title
エントリのタイトル
excerpt
エントリの要約
url
エントリの permalink。(URL)
blog_name
post した(クライアント側)ブログの名前

結果

送信結果は簡単なXMLで返される


// 成功の場合
<?xml version="1.0" encoding="utf-8"?>
<response>
<error>0</error>
</response>

// エラーの場合
<?xml version="1.0" encoding="utf-8"?>
<response>
<error>1</error>
<message>The error message</message>
</response>

Zend_Http_Clientを利用して実装

せっかくPHP5なのでZend_Http_Clientを利用しようかと思います。 PHP4の場合は、PEAR::Services_Trackbackが使えそう。


require_once("Http/Client.php");

// エントリーのタイトル
$title = "トラックバック送信の仕様と実装メモ";

// 内容
$excerpt = "適当にトラックバック送信の仕様と実装のメモするよ。";

// エントリーのURL
$url = "http://www.kantenna.com/test.php";

// ブログのタイトル
$blog_name = "情報備忘録";

// インスタンス作成
$client = new Zend_Http_Client();

// 送信先は$client->setUri()を利用する。
// コンストラクタで設定してもよい 例)new Zend_Http_Client($url);
$client->setUri("http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/429");

// 独自のヘッダを指定するには setHeaders() メソッドを使用します。
$client->setHeaders("Content-Type: application/x-www-form-urlencoded");

//setParameterPost() メソッドを利用してパラメータの追加
$client->setParameterPost(array(
    "title"  => $title,
    "excerpt"   => $excerpt,
    "url" => $url,
    "blog_name" => $blog_name
));

// 送信
//Zend_Http_Responseオブジェクトが返ってくる。
$response = $client->request("POST");

// 送信内容の確認
var_dump($client->getLastRequest());

// Zend_Http_Responseの中身
var_dump($response);

実行結果

var_dump($client->getLastRequest())

string 'POST /cgi-bin/mt/mt-tb.cgi/429 HTTP/1.1

Host: www.kantenna.com

Connection: close

Accept-encoding: gzip, deflate

User-Agent: Zend_Http_Client

Content-Type: application/x-www-form-urlencoded

Content-Length: 494



title=%E3%83%88%E3%83%A9%E3%83%83%E3%82%AF%E3%83%90%E3%83%83%E3%82%AF%E9%80%81%E4%BF%A1%E3%81%AE%E4%BB%95%E6%A7%98%E3%81%A8%E5%AE%9F%E8%A3%85%E3%83%A1%E3%83%A2&excerpt=%E9%81%A9%E5%BD%93%E3%81%AB%E3%83%88%E3%83%A9%E3%83%83%E3%82%AF%E3%83%90%E3%83%83%E3%82%AF%E9%80%81%E4%BF%A1%E3%81%AE%E4%BB%95'... (length=712)


var_dump($response)

object(Zend_Http_Response)[18]
  protected 'version' => string '1.1' (length=3)
  protected 'code' => int 200
  protected 'message' => string 'OK' (length=2)
  protected 'headers' =>
    array
      'Date' => string 'Sun, 25 Jan 2009 06:09:17 GMT' (length=29)
      'Server' => string 'Apache' (length=6)
      'Pragma' => string 'no-cache' (length=8)
      'Connection' => string 'close' (length=5)
      'Transfer-encoding' => string 'chunked' (length=7)
      'Content-type' => string 'text/xml; charset=utf-8' (length=23)
  protected 'body' => string '4f

<?xml version="1.0" encoding="utf-8"?>
<response>
<error>0</error>
</response>


0



' (length=90)

PHPサイバーテロの技法―攻撃と防御の実際

著者 : GIJOE / 金額 : ¥ 1,890

トラックバック送信の仕様と実装メモタグ:

トラックバック

  • http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/431
コメント (0)
コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)





この情報を登録しますか?


先月アクセスが多かったページ