HOME>WEBプログラム覚書>トラックバック送信の仕様と実装メモ

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

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

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

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

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

指定可能なパラメータ

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

結果

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

XML

  1. // 成功の場合
  2. <?xml version="1.0" encoding="utf-8"?>
  3. <response>
  4. <error>0</error>
  5. </response>
  6.  
  7. // エラーの場合
  8. <?xml version="1.0" encoding="utf-8"?>
  9. <response>
  10. <error>1</error>
  11. <message>The error message</message>
  12. </response>
  13.  

Zend_Http_Clientを利用して実装

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

PHP

  1. <?php
  2. require_once("Http/Client.php");
  3.  
  4. // エントリーのタイトル
  5. $title = "トラックバック送信の仕様と実装メモ";
  6.  
  7. // 内容
  8. $excerpt = "適当にトラックバック送信の仕様と実装のメモするよ。";
  9.  
  10. // エントリーのURL
  11. $url = "http://www.kantenna.com/test.php";
  12.  
  13. // ブログのタイトル
  14. $blog_name = "情報備忘録";
  15.  
  16. // インスタンス作成
  17. $client = new Zend_Http_Client();
  18.  
  19. // 送信先は$client->setUri()を利用する。
  20. // コンストラクタで設定してもよい 例)new Zend_Http_Client($url);
  21. $client->setUri("http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/429");
  22.  
  23. // 独自のヘッダを指定するには setHeaders() メソッドを使用します。
  24. $client->setHeaders("Content-Type: application/x-www-form-urlencoded");
  25.  
  26. //setParameterPost() メソッドを利用してパラメータの追加
  27. $client->setParameterPost(array(
  28.     "title"  => $title,
  29.     "excerpt"   => $excerpt,
  30.     "url" => $url,
  31.     "blog_name" => $blog_name
  32. ));
  33.  
  34. // 送信
  35. //Zend_Http_Responseオブジェクトが返ってくる。
  36. $response = $client->request("POST");
  37.  
  38. // 送信内容の確認
  39. var_dump($client->getLastRequest());
  40.  
  41. // Zend_Http_Responseの中身
  42. var_dump($response);
  43. ?>

実行結果

var_dump($client->getLastRequest())

  1. string 'POST /cgi-bin/mt/mt-tb.cgi/429 HTTP/1.1
  2.  
  3. Host: www.kantenna.com
  4.  
  5. Connection: close
  6.  
  7. Accept-encoding: gzip, deflate
  8.  
  9. User-Agent: Zend_Http_Client
  10.  
  11. Content-Type: application/x-www-form-urlencoded
  12.  
  13. Content-Length: 494
  14.  
  15.  
  16.  
  17. 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)
  18.  
  19.  

var_dump($response)

  1. object(Zend_Http_Response)[18]
  2.   protected 'version' => string '1.1' (length=3)
  3.   protected 'code' => int 200
  4.   protected 'message' => string 'OK' (length=2)
  5.   protected 'headers' =>
  6.     array
  7.       'Date' => string 'Sun, 25 Jan 2009 06:09:17 GMT' (length=29)
  8.       'Server' => string 'Apache' (length=6)
  9.       'Pragma' => string 'no-cache' (length=8)
  10.       'Connection' => string 'close' (length=5)
  11.       'Transfer-encoding' => string 'chunked' (length=7)
  12.       'Content-type' => string 'text/xml; charset=utf-8' (length=23)
  13.   protected 'body' => string '4f
  14.  
  15. <?xml version="1.0" encoding="utf-8"?>
  16. <response>
  17. <error>0</error>
  18. </response>
  19.  
  20.  
  21. 0
  22.  
  23.  
  24.  
  25. ' (length=90)
  26.  
投稿日 2009年1月25日 15:37
カテゴリ PHP
タグ Zend Framework | サンプルコード | フレームワーク
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1148

コメント

コメントする
Name
Email Address
URL