• ベストアンサー

トラックバック機能を作りたい

PHPでブログを作ったんですがトラックバックはよく解らなくて 付けてません。トラックバック機能を実現するにはどういう風に コーディングしたらいいのでしょうか? ご存知の方教えてください。できるだけ簡素なやつがいいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

POSTの方法ですね。 参考URLあたりが分かりやすい、かな?

参考URL:
http://www.spencernetwork.org/memo/tips-3.php
SoHeart
質問者

お礼

回答ありがとうございます。 教えていただいたURLを参考に試してみた結果、当初出ていたDeniedのエラーはクリアーしましたが、Basic認証エラーになりました。 調べていくとApatchとASPではやり方が違うということが解り とてもじゃないけど両方作る根気がありません。取りあえずHTML で作っておいて、またやりたくなったら今度はPEARでやろうと 思います。

その他の回答 (2)

回答No.2

おっと。 【受信側から見た視点での動作】の最後に、XMLでレスポンスする処理を書き忘れました。 まぁ、エラーだったら<error>1</error>、成功したら<error>0</error>で返せばよしです。 【送信側から見た視点での動作】を参考に。

SoHeart
質問者

お礼

回答ありがとうございます。 質問してからネットでいろいろ調べて試してみました。 現在、送信部分が難航してます。HTMLでやると普通に動くんですが、 画面がレスポンス表示になってしまいます。 fsockopen()を使った例をためしたんですがiisがエラーを返します。 今、pearを使った例をいじってるところです。 (pearは全然触ったことありません。)

回答No.1

トラックバックを送信したいのでしょうか? 受信したいのでしょうか? まぁブログということなので、両方としてお答えします。 既存の記事Aに対して、新規記事Bからトラックバックを送信することを考えます。 (この結果、通常、記事Aから記事Bに対するリンクが貼られます。) 記事Aが「受信側」、記事Bは「送信側」ですね。 【送信側から見た視点での動作】 この事例では、記事B投稿時に、記事AのトラックバックURLにHTTP POSTを送信します。 POSTのパラメータは以下の通り。 "url" 記事BのURL "blog_name" 記事BのBlog名 "title" 記事Bのタイトル "excerpt" 記事Bの概要(本文である事が多い) POSTを行うと、記事AのサーバからXMLによるレスポンスが返って来ます。 -------- 成功した例 <?xml encoding="utf-8"?> <response> <error>0</error> <message>(成功した旨のメッセージ)</message> </response> -------- 失敗した例 <?xml encoding="utf-8"?> <response> <error>1</error> <message>(エラーメッセージ)</message> </response> このレスポンスで、トラックバックの成否を判断して、エラーを発生させるなり、 そのトラバは無かったものとして処理するなり、何らかの処理を行って終了します。 【受信側から見た視点での動作】 まず、(記事A)固有のトラックバックURLを作ります。 http://www.example.com/blog/trackback.php?article_id=12345 などですね。このように記事IDをGETで取得できるようにしておくと便利かと。 そして、(記事Bから)トラックバックがあった時に、上記 trackback.php が起動します。 まず、methodがPOSTでなかった場合は、URLをブラウザで閲覧したと考えて、エラー。 その他、$_GET['article_id'] が正常かどうか(その記事が存在するかどうか)、 $_POST['url'] などのPOSTパラメータが存在し、かつ正常かどうかを判断する必要もあるでしょう。 上記その他のエラーチェックで問題がなければ、$_GET['article_id'] に対するトラックバックで、 内容は $_POST[] である、ということで、データベースにインサートするなり、それなりの記録処理を行って 終了します。 おおまかに、こんな感じです。トラックバックの詳細仕様については、 検索結果でどうぞ。 http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=%E3%83%88%E3%83%A9%E3%83%83%E3%82%AF%E3%83%90%E3%83%83%E3%82%AF+%E4%BB%95%E6%A7%98&num=50

SoHeart
質問者

お礼

回答ありがとうございます。 受信部分は実装できました。

関連するQ&A