Zend_Service_Technorati.xml 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 15617 -->
  4. <sect1 id="zend.service.technorati">
  5. <title>Zend_Service_Technorati</title>
  6. <sect2 id="zend.service.technorati.introduction">
  7. <title>導入</title>
  8. <para>
  9. <classname>Zend_Service_Technorati</classname> は、Technorati API
  10. を使うための簡単で直感的なオブジェクト指向インターフェイスを提供します。
  11. 利用可能なすべての
  12. <ulink url="http://technorati.com/developers/api/">Technorati API クエリ</ulink>
  13. にアクセスすることができ、API が返す XML
  14. 形式のレスポンスを PHP で扱いやすいオブジェクトで返します。
  15. </para>
  16. <para>
  17. <ulink url="http://technorati.com/">Technorati</ulink>
  18. は、人気のあるブログ検索エンジンのひとつです。その API を使用すると、
  19. 特定のブログについての情報を取得したり、
  20. 指定したタグやフレーズにマッチするブログの著者の情報を取得したりできます。
  21. 使用できるクエリの一覧は、
  22. <ulink url="http://technorati.com/developers/api/">Technorati API ドキュメント</ulink>
  23. あるいはこのドキュメントの
  24. <link linkend="zend.service.technorati.queries">使用できる Technorati クエリ</link>
  25. を参照ください。
  26. </para>
  27. </sect2>
  28. <sect2 id="zend.service.technorati.getting-started">
  29. <title>さあ始めましょう</title>
  30. <para>
  31. Technorati API を使用するには、キーが必要です。
  32. API キーを取得するには、まず最初に
  33. <ulink url="http://technorati.com/signup/">Technorati アカウントを作成</ulink>
  34. し、それから
  35. <ulink url="http://technorati.com/developers/apikey.html">API キーのセクション</ulink>
  36. に行ってください。
  37. </para>
  38. <note>
  39. <title>API キーの制限</title>
  40. <para>
  41. 一日あたり最大 500 までの Technorati API コールを無料で行うことができます。
  42. 現在の Technorati API のライセンスによってはその他の使用制限が適用されるかもしれません。
  43. </para>
  44. </note>
  45. <para>
  46. API キーを取得したら、いよいよ <classname>Zend_Service_Technorati</classname>
  47. を使うことができます。
  48. </para>
  49. </sect2>
  50. <sect2 id="zend.service.technorati.making-first-query">
  51. <title>はじめてのクエリ</title>
  52. <para>
  53. クエリを実行するにはまず最初に API キーを使用して
  54. <classname>Zend_Service_Technorati</classname> のインスタンスを作成します。
  55. そしてクエリの形式を選択し、引数を指定したうえでそれをコールします。
  56. </para>
  57. <example id="zend.service.technorati.making-first-query.example-1">
  58. <title>はじめてのクエリの実行</title>
  59. <programlisting language="php"><![CDATA[
  60. // API_KEY を指定して
  61. // Zend_Service_Technorati を作成します
  62. $technorati = new Zend_Service_Technorati('VALID_API_KEY');
  63. // Technorati で PHP というキーワードを検索します
  64. $resultSet = $technorati->search('PHP');
  65. ]]></programlisting>
  66. </example>
  67. <para>
  68. 検索用のメソッドにはオプションパラメータの配列を渡すことができます。
  69. これを使用すると、クエリをさらに絞り込むことができます。
  70. </para>
  71. <example id="zend.service.technorati.making-first-query.example-2">
  72. <title>クエリの精度の向上</title>
  73. <programlisting language="php"><![CDATA[
  74. // API_KEY を指定して
  75. // Zend_Service_Technorati を作成します
  76. $technorati = new Zend_Service_Technorati('VALID_API_KEY');
  77. // クエリをフィルタリングし、あまり影響力のない
  78. // (あまり他からリンクされていない) ブログを結果から除外します
  79. $options = array('authority' => 'a4');
  80. // Technorati で PHP というキーワードを検索します
  81. $resultSet = $technorati->search('PHP', $options);
  82. ]]></programlisting>
  83. </example>
  84. <para>
  85. <classname>Zend_Service_Technorati</classname> のインスタンスは使い捨てのオブジェクトではありません。
  86. したがって、クエリをコールするたびに毎回新たなインスタンスを作成するなどということは不要です。
  87. 一度作成した <classname>Zend_Service_Technorati</classname>
  88. オブジェクトを、気の済むまで使い回せばいいのです。
  89. </para>
  90. <example id="zend.service.technorati.making-first-query.example-3">
  91. <title>ひとつの Zend_Service_Technorati インスタンスでの複数のクエリの送信</title>
  92. <programlisting language="php"><![CDATA[
  93. // API_KEY を指定して
  94. // Zend_Service_Technorati を作成します
  95. $technorati = new Zend_Service_Technorati('VALID_API_KEY');
  96. // Technorati で PHP というキーワードを検索します
  97. $search = $technorati->search('PHP');
  98. // Technorati で一番よく登録されているタブを取得します
  99. $topTags = $technorati->topTags();
  100. ]]></programlisting>
  101. </example>
  102. </sect2>
  103. <sect2 id="zend.service.technorati.consuming-results">
  104. <title>結果の取得</title>
  105. <para>
  106. クエリの結果は、二種類の結果オブジェクトのうちのいずれかの形式で取得することができます。
  107. </para>
  108. <para>
  109. まず最初の形式は <classname>Zend_Service_Technorati_*ResultSet</classname>
  110. オブジェクトで表されるものです。結果セットオブジェクトは、
  111. 基本的には結果オブジェクトのコレクションとなります。これは基底クラス
  112. <classname>Zend_Service_Technorati_ResultSet</classname> を継承したもので、
  113. PHP の <code>SeekableIterator</code> インターフェイスを実装しています。
  114. この結果セットを使用するいちばんよい方法は、PHP の <code>foreach</code>
  115. 文を用いてループ処理することです。
  116. </para>
  117. <example id="zend.service.technorati.consuming-results.example-1">
  118. <title>結果セットオブジェクトの取得</title>
  119. <programlisting language="php"><![CDATA[
  120. // API_KEY を指定して
  121. // Zend_Service_Technorati を作成します
  122. $technorati = new Zend_Service_Technorati('VALID_API_KEY');
  123. // Technorati で PHP というキーワードを検索します
  124. // $resultSet は Zend_Service_Technorati_SearchResultSet のインスタンスです
  125. $resultSet = $technorati->search('PHP');
  126. // 結果オブジェクトをループします
  127. foreach ($resultSet as $result) {
  128. // $result は Zend_Service_Technorati_SearchResult のインスタンスです
  129. }
  130. ]]></programlisting>
  131. </example>
  132. <para>
  133. <classname>Zend_Service_Technorati_ResultSet</classname> は <code>SeekableIterator</code>
  134. インターフェイスを実装しているので、結果コレクション内での位置を指定して
  135. 特定の結果オブジェクトを取得することもできます。
  136. </para>
  137. <example id="zend.service.technorati.consuming-results.example-2">
  138. <title>特定の結果セットオブジェクトの取得</title>
  139. <programlisting language="php"><![CDATA[
  140. // API_KEY を指定して
  141. // Zend_Service_Technorati を作成します
  142. $technorati = new Zend_Service_Technorati('VALID_API_KEY');
  143. // Technorati で PHP というキーワードを検索します
  144. // $resultSet は Zend_Service_Technorati_SearchResultSet のインスタンスです
  145. $resultSet = $technorati->search('PHP');
  146. // $result は Zend_Service_Technorati_SearchResult のインスタンスです
  147. $resultSet->seek(1);
  148. $result = $resultSet->current();
  149. ]]></programlisting>
  150. </example>
  151. <note>
  152. <para>
  153. <code>SeekableIterator</code> は配列として動作し、
  154. そのインデックスは 0 から始まります。インデックス 1
  155. を指定すると、コレクション内の 2 番目の結果を取得することになります。
  156. </para>
  157. </note>
  158. <para>
  159. 2 番目の形式は、単体の特別な結果オブジェクトで表されるものです。
  160. <classname>Zend_Service_Technorati_GetInfoResult</classname>、<classname>Zend_Service_Technorati_BlogInfoResult</classname>
  161. および <classname>Zend_Service_Technorati_KeyInfoResult</classname> は、
  162. <classname>Zend_Service_Technorati_Author</classname> や <classname>Zend_Service_Technorati_Weblog</classname>
  163. といったオブジェクトのラッパーとして働きます。
  164. </para>
  165. <example id="zend.service.technorati.consuming-results.example-3">
  166. <title>単体の結果オブジェクトの取得</title>
  167. <programlisting language="php"><![CDATA[
  168. // API_KEY を指定して
  169. // Zend_Service_Technorati を作成します
  170. $technorati = new Zend_Service_Technorati('VALID_API_KEY');
  171. // weppos についての情報を取得します
  172. $result = $technorati->getInfo('weppos');
  173. $author = $result->getAuthor();
  174. echo '<h2>' . $author->getFirstName() . ' ' . $author->getLastName() .
  175. ' のブログ</h2>';
  176. echo '<ol>';
  177. foreach ($result->getWeblogs() as $weblog) {
  178. echo '<li>' . $weblog->getName() . '</li>';
  179. }
  180. echo "</ol>";
  181. ]]></programlisting>
  182. </example>
  183. <para>
  184. レスポンスクラスの詳細については
  185. <link linkend="zend.service.technorati.classes">Zend_Service_Technorati クラス</link>
  186. のセクションを参照ください。
  187. </para>
  188. </sect2>
  189. <sect2 id="zend.service.technorati.handling-errors">
  190. <title>エラー処理</title>
  191. <para>
  192. <classname>Zend_Service_Technorati</classname> のクエリメソッドは、失敗したときには
  193. <classname>Zend_Service_Technorati_Exception</classname> をスローします。
  194. またその際にはわかりやすいエラーメッセージを提供します。
  195. </para>
  196. <para>
  197. <classname>Zend_Service_Technorati</classname> のクエリが失敗する原因は、いくつか考えられます。
  198. <classname>Zend_Service_Technorati</classname> は、クエリを送信する際にすべてのパラメータを検証します。
  199. もし無効なパラメータや無効な値を指定していた場合は
  200. <classname>Zend_Service_Technorati_Exception</classname> をスローします。
  201. さらに、Technorati API が一時的に使用できなくなっていたり、
  202. そのレスポンスが整形式でない場合もあり得るでしょう。
  203. </para>
  204. <para>
  205. Technorati のクエリは、常に <code>try</code>...<code>catch</code>
  206. ブロック内に記述するようにしましょう。
  207. </para>
  208. <example id="zend.service.technorati.handling-errors.example-1">
  209. <title>クエリの例外処理</title>
  210. <programlisting language="php"><![CDATA[
  211. $technorati = new Zend_Service_Technorati('VALID_API_KEY');
  212. try {
  213. $resultSet = $technorati->search('PHP');
  214. } catch(Zend_Service_Technorati_Exception $e) {
  215. echo "エラーが発生しました: " $e->getMessage();
  216. }
  217. ]]></programlisting>
  218. </example>
  219. </sect2>
  220. <sect2 id="zend.service.technorati.checking-api-daily-usage">
  221. <title>API キーの使用限度の確認</title>
  222. <para>
  223. 今日は後何回 API キーが使えるのかを調べたいことも多々あるでしょう。
  224. デフォルトでは、Technorati の API は 1 日あたり 500 回までしか使用することができません。
  225. それを超えて使用しようとすると、<classname>Zend_Service_Technorati</classname>
  226. は例外を返します。自分の API キーの使用状況を取得するには
  227. <classname>Zend_Service_Technorati::keyInfo()</classname> メソッドを使用します。
  228. </para>
  229. <para>
  230. <classname>Zend_Service_Technorati::keyInfo()</classname> は
  231. <classname>Zend_Service_Technorati_KeyInfoResult</classname> オブジェクトを返します。
  232. 詳細は
  233. <ulink url="http://framework.zend.com/apidoc/core/">API リファレンスガイド</ulink>
  234. を参照ください。
  235. </para>
  236. <example id="zend.service.technorati.checking-api-daily-usage.example-1">
  237. <title>API キーの使用状況の取得</title>
  238. <programlisting language="php"><![CDATA[
  239. $technorati = new Zend_Service_Technorati('VALID_API_KEY');
  240. $key = $technorati->keyInfo();
  241. echo "API Key: " . $key->getApiKey() . "<br />";
  242. echo "Daily Usage: " . $key->getApiQueries() . "/" .
  243. $key->getMaxQueries() . "<br />";
  244. ]]></programlisting>
  245. </example>
  246. </sect2>
  247. <sect2 id="zend.service.technorati.queries">
  248. <title>使用できる Technorati クエリ</title>
  249. <para>
  250. <classname>Zend_Service_Technorati</classname> は以下のクエリをサポートしています。
  251. <itemizedlist>
  252. <listitem><para><link linkend="zend.service.technorati.queries.cosmos"><code>Cosmos</code></link></para></listitem>
  253. <listitem><para><link linkend="zend.service.technorati.queries.search"><code>Search</code></link></para></listitem>
  254. <listitem><para><link linkend="zend.service.technorati.queries.tag"><code>Tag</code></link></para></listitem>
  255. <listitem><para><link linkend="zend.service.technorati.queries.dailycounts"><code>DailyCounts</code></link></para></listitem>
  256. <listitem><para><link linkend="zend.service.technorati.queries.toptags"><code>TopTags</code></link></para></listitem>
  257. <listitem><para><link linkend="zend.service.technorati.queries.bloginfo"><code>BlogInfo</code></link></para></listitem>
  258. <listitem><para><link linkend="zend.service.technorati.queries.blogposttags"><code>BlogPostTags</code></link></para></listitem>
  259. <listitem><para><link linkend="zend.service.technorati.queries.getinfo"><code>GetInfo</code></link></para></listitem>
  260. </itemizedlist>
  261. </para>
  262. <sect3 id="zend.service.technorati.queries.cosmos">
  263. <title>Technorati Cosmos</title>
  264. <para>
  265. <ulink url="http://technorati.com/developers/api/cosmos.html">Cosmos</ulink>
  266. クエリは、指定した URL にリンクしているブログを探します。このクエリは
  267. <link linkend="zend.service.technorati.classes.cosmosresultset"><classname>Zend_Service_Technorati_CosmosResultSet</classname></link>
  268. オブジェクトを返します。詳細は
  269. <ulink url="http://framework.zend.com/apidoc/core/">API リファレンスガイド</ulink>
  270. の <classname>Zend_Service_Technorati::cosmos()</classname> を参照ください。
  271. </para>
  272. <example id="zend.service.technorati.queries.cosmos.example-1">
  273. <title>Cosmos クエリ</title>
  274. <programlisting language="php"><![CDATA[
  275. $technorati = new Zend_Service_Technorati('VALID_API_KEY');
  276. $resultSet = $technorati->cosmos('http://devzone.zend.com/');
  277. echo "<p>Reading " . $resultSet->totalResults() .
  278. " of " . $resultSet->totalResultsAvailable() .
  279. " available results</p>";
  280. echo "<ol>";
  281. foreach ($resultSet as $result) {
  282. echo "<li>" . $result->getWeblog()->getName() . "</li>";
  283. }
  284. echo "</ol>";
  285. ]]></programlisting>
  286. </example>
  287. </sect3>
  288. <sect3 id="zend.service.technorati.queries.search">
  289. <title>Technorati Search</title>
  290. <para>
  291. <ulink url="http://technorati.com/developers/api/search.html">Search</ulink>
  292. クエリは、指定した検索文字列を含むブログを探します。このクエリは
  293. <link linkend="zend.service.technorati.classes.searchresultset"><classname>Zend_Service_Technorati_SearchResultSet</classname></link>
  294. オブジェクトを返します。詳細は
  295. <ulink url="http://framework.zend.com/apidoc/core/">API リファレンスガイド</ulink>
  296. の <classname>Zend_Service_Technorati::search()</classname> を参照ください。
  297. </para>
  298. <example id="zend.service.technorati.queries.search.example-1">
  299. <title>Search クエリ</title>
  300. <programlisting language="php"><![CDATA[
  301. $technorati = new Zend_Service_Technorati('VALID_API_KEY');
  302. $resultSet = $technorati->search('zend framework');
  303. echo "<p>Reading " . $resultSet->totalResults() .
  304. " of " . $resultSet->totalResultsAvailable() .
  305. " available results</p>";
  306. echo "<ol>";
  307. foreach ($resultSet as $result) {
  308. echo "<li>" . $result->getWeblog()->getName() . "</li>";
  309. }
  310. echo "</ol>";
  311. ]]></programlisting>
  312. </example>
  313. </sect3>
  314. <sect3 id="zend.service.technorati.queries.tag">
  315. <title>Technorati Tag</title>
  316. <para>
  317. <ulink url="http://technorati.com/developers/api/tag.html">Tag</ulink>
  318. クエリは、指定したタグがつけられている投稿を探します。このクエリは
  319. <link linkend="zend.service.technorati.classes.tagresultset"><classname>Zend_Service_Technorati_TagResultSet</classname></link>
  320. オブジェクトを返します。詳細は
  321. <ulink url="http://framework.zend.com/apidoc/core/">API リファレンスガイド</ulink>
  322. の <classname>Zend_Service_Technorati::tag()</classname> を参照ください。
  323. </para>
  324. <example id="zend.service.technorati.queries.tag.example-1">
  325. <title>Tag クエリ</title>
  326. <programlisting language="php"><![CDATA[
  327. $technorati = new Zend_Service_Technorati('VALID_API_KEY');
  328. $resultSet = $technorati->tag('php');
  329. echo "<p>Reading " . $resultSet->totalResults() .
  330. " of " . $resultSet->totalResultsAvailable() .
  331. " available results</p>";
  332. echo "<ol>";
  333. foreach ($resultSet as $result) {
  334. echo "<li>" . $result->getWeblog()->getName() . "</li>";
  335. }
  336. echo "</ol>";
  337. ]]></programlisting>
  338. </example>
  339. </sect3>
  340. <sect3 id="zend.service.technorati.queries.dailycounts">
  341. <title>Technorati DailyCounts</title>
  342. <para>
  343. <ulink url="http://technorati.com/developers/api/dailycounts.html">DailyCounts</ulink>
  344. クエリは、指定したキーワードを含む投稿の 1 日あたりの数を返します。このクエリは
  345. <link linkend="zend.service.technorati.classes.dailycountsresultset"><classname>Zend_Service_Technorati_DailyCountsResultSet</classname></link>
  346. オブジェクトを返します。詳細は
  347. <ulink url="http://framework.zend.com/apidoc/core/">API リファレンスガイド</ulink>
  348. の <classname>Zend_Service_Technorati::dailyCounts()</classname> を参照ください。
  349. </para>
  350. <example id="zend.service.technorati.queries.dailycounts.example-1">
  351. <title>DailyCounts クエリ</title>
  352. <programlisting language="php"><![CDATA[
  353. $technorati = new Zend_Service_Technorati('VALID_API_KEY');
  354. $resultSet = $technorati->dailyCounts('php');
  355. foreach ($resultSet as $result) {
  356. echo "<li>" . $result->getDate() .
  357. "(" . $result->getCount() . ")</li>";
  358. }
  359. echo "</ol>";
  360. ]]></programlisting>
  361. </example>
  362. </sect3>
  363. <sect3 id="zend.service.technorati.queries.toptags">
  364. <title>Technorati TopTags</title>
  365. <para>
  366. <ulink url="http://technorati.com/developers/api/toptags.html">TopTags</ulink>
  367. クエリは、Technorati にもっとも多く登録されているタグの情報を返します。このクエリは
  368. <link linkend="zend.service.technorati.classes.tagsresultset"><classname>Zend_Service_Technorati_TagsResultSet</classname></link>
  369. オブジェクトを返します。詳細は
  370. <ulink url="http://framework.zend.com/apidoc/core/">API リファレンスガイド</ulink>
  371. の <classname>Zend_Service_Technorati::topTags()</classname> を参照ください。
  372. </para>
  373. <example id="zend.service.technorati.queries.toptags.example-1">
  374. <title>TopTags タグ</title>
  375. <programlisting language="php"><![CDATA[
  376. $technorati = new Zend_Service_Technorati('VALID_API_KEY');
  377. $resultSet = $technorati->topTags();
  378. echo "<p>Reading " . $resultSet->totalResults() .
  379. " of " . $resultSet->totalResultsAvailable() .
  380. " available results</p>";
  381. echo "<ol>";
  382. foreach ($resultSet as $result) {
  383. echo "<li>" . $result->getTag() . "</li>";
  384. }
  385. echo "</ol>";
  386. ]]></programlisting>
  387. </example>
  388. </sect3>
  389. <sect3 id="zend.service.technorati.queries.bloginfo">
  390. <title>Technorati BlogInfo</title>
  391. <para>
  392. <ulink url="http://technorati.com/developers/api/bloginfo.html">BlogInfo</ulink>
  393. は、指定した URL に関連するブログの情報を返します。このクエリは
  394. <link linkend="zend.service.technorati.classes.bloginforesult"><classname>Zend_Service_Technorati_BlogInfoResult</classname></link>
  395. オブジェクトを返します。詳細は
  396. <ulink url="http://framework.zend.com/apidoc/core/">API リファレンスガイド</ulink>
  397. の <classname>Zend_Service_Technorati::blogInfo()</classname> を参照ください。
  398. </para>
  399. <example id="zend.service.technorati.queries.bloginfo.example-1">
  400. <title>BlogInfo クエリ</title>
  401. <programlisting language="php"><![CDATA[
  402. $technorati = new Zend_Service_Technorati('VALID_API_KEY');
  403. $result = $technorati->blogInfo('http://devzone.zend.com/');
  404. echo '<h2><a href="' . (string) $result->getWeblog()->getUrl() . '">' .
  405. $result->getWeblog()->getName() . '</a></h2>';
  406. ]]></programlisting>
  407. </example>
  408. </sect3>
  409. <sect3 id="zend.service.technorati.queries.blogposttags">
  410. <title>Technorati BlogPostTags</title>
  411. <para>
  412. <ulink url="http://technorati.com/developers/api/blogposttags.html">BlogPostTags</ulink>
  413. クエリは、そのブログでよく使われているタグの情報を返します。このクエリは
  414. <link linkend="zend.service.technorati.classes.tagsresultset"><classname>Zend_Service_Technorati_TagsResultSet</classname></link>
  415. オブジェクトを返します。詳細は
  416. <ulink url="http://framework.zend.com/apidoc/core/">API リファレンスガイド</ulink>
  417. の <classname>Zend_Service_Technorati::blogPostTags()</classname> を参照ください。
  418. </para>
  419. <example id="zend.service.technorati.queries.blogposttags.example-1">
  420. <title>BlogPostTags クエリ</title>
  421. <programlisting language="php"><![CDATA[
  422. $technorati = new Zend_Service_Technorati('VALID_API_KEY');
  423. $resultSet = $technorati->blogPostTags('http://devzone.zend.com/');
  424. echo "<p>Reading " . $resultSet->totalResults() .
  425. " of " . $resultSet->totalResultsAvailable() .
  426. " available results</p>";
  427. echo "<ol>";
  428. foreach ($resultSet as $result) {
  429. echo "<li>" . $result->getTag() . "</li>";
  430. }
  431. echo "</ol>";
  432. ]]></programlisting>
  433. </example>
  434. </sect3>
  435. <sect3 id="zend.service.technorati.queries.getinfo">
  436. <title>Technorati GetInfo</title>
  437. <para>
  438. <ulink url="http://technorati.com/developers/api/getinfo.html">GetInfo</ulink>
  439. クエリは、あるメンバーについて Technorati が把握している情報を返します。このクエリは
  440. <link linkend="zend.service.technorati.classes.getinforesult"><classname>Zend_Service_Technorati_GetInfoResult</classname></link>
  441. オブジェクトを返します。詳細は
  442. <ulink url="http://framework.zend.com/apidoc/core/">API リファレンスガイド</ulink>
  443. の <classname>Zend_Service_Technorati::getInfo()</classname> を参照ください。
  444. </para>
  445. <example id="zend.service.technorati.queries.getinfo.example-1">
  446. <title>GetInfo クエリ</title>
  447. <programlisting language="php"><![CDATA[
  448. $technorati = new Zend_Service_Technorati('VALID_API_KEY');
  449. $result = $technorati->getInfo('weppos');
  450. $author = $result->getAuthor();
  451. echo "<h2>Blogs authored by " . $author->getFirstName() . " " .
  452. $author->getLastName() . "</h2>";
  453. echo "<ol>";
  454. foreach ($result->getWeblogs() as $weblog) {
  455. echo "<li>" . $weblog->getName() . "</li>";
  456. }
  457. echo "</ol>";
  458. ]]></programlisting>
  459. </example>
  460. </sect3>
  461. <sect3 id="zend.service.technorati.queries.keyinfo">
  462. <title>Technorati KeyInfo</title>
  463. <para>
  464. KeyInfo クエリは、API キーの使用状況についての情報を返します。このクエリは
  465. <link linkend="zend.service.technorati.classes.keyinforesult"><classname>Zend_Service_Technorati_KeyInfoResult</classname></link>
  466. オブジェクトを返します。詳細は
  467. <ulink url="http://framework.zend.com/apidoc/core/">API リファレンスガイド</ulink>
  468. の <classname>Zend_Service_Technorati::keyInfo()</classname> を参照ください。
  469. </para>
  470. </sect3>
  471. </sect2>
  472. <sect2 id="zend.service.technorati.classes">
  473. <title>Zend_Service_Technorati クラス</title>
  474. <para>
  475. 以下のクラスは、Technorati の各種クエリから返されるものです。
  476. <classname>Zend_Service_Technorati_*ResultSet</classname> 系のクラスは、
  477. それぞれの形式にあわせた結果セットを保持します。
  478. その中身は形式にあわせた結果オブジェクトであり、容易に処理することができます。
  479. これらの結果セットクラスはすべて
  480. <classname>Zend_Service_Technorati_ResultSet</classname> クラスを継承しており、かつ
  481. <code>SeekableIterator</code> インターフェイスを実装しています。
  482. これによって、結果のループ処理や特定の結果の取り出しが簡単にできるようになります。
  483. <itemizedlist>
  484. <listitem><para><link linkend="zend.service.technorati.classes.resultset"><classname>Zend_Service_Technorati_ResultSet</classname></link></para></listitem>
  485. <listitem><para><link linkend="zend.service.technorati.classes.cosmosresultset"><classname>Zend_Service_Technorati_CosmosResultSet</classname></link></para></listitem>
  486. <listitem><para><link linkend="zend.service.technorati.classes.searchresultset"><classname>Zend_Service_Technorati_SearchResultSet</classname></link></para></listitem>
  487. <listitem><para><link linkend="zend.service.technorati.classes.tagresultset"><classname>Zend_Service_Technorati_TagResultSet</classname></link></para></listitem>
  488. <listitem><para><link linkend="zend.service.technorati.classes.dailycountsresultset"><classname>Zend_Service_Technorati_DailyCountsResultSet</classname></link></para></listitem>
  489. <listitem><para><link linkend="zend.service.technorati.classes.tagsresultset"><classname>Zend_Service_Technorati_TagsResultSet</classname></link></para></listitem>
  490. <listitem><para><link linkend="zend.service.technorati.classes.result"><classname>Zend_Service_Technorati_Result</classname></link></para></listitem>
  491. <listitem><para><link linkend="zend.service.technorati.classes.cosmosresult"><classname>Zend_Service_Technorati_CosmosResult</classname></link></para></listitem>
  492. <listitem><para><link linkend="zend.service.technorati.classes.searchresult"><classname>Zend_Service_Technorati_SearchResult</classname></link></para></listitem>
  493. <listitem><para><link linkend="zend.service.technorati.classes.tagresult"><classname>Zend_Service_Technorati_TagResult</classname></link></para></listitem>
  494. <listitem><para><link linkend="zend.service.technorati.classes.dailycountsresult"><classname>Zend_Service_Technorati_DailyCountsResult</classname></link></para></listitem>
  495. <listitem><para><link linkend="zend.service.technorati.classes.tagsresult"><classname>Zend_Service_Technorati_TagsResult</classname></link></para></listitem>
  496. <listitem><para><link linkend="zend.service.technorati.classes.getinforesult"><classname>Zend_Service_Technorati_GetInfoResult</classname></link></para></listitem>
  497. <listitem><para><link linkend="zend.service.technorati.classes.bloginforesult"><classname>Zend_Service_Technorati_BlogInfoResult</classname></link></para></listitem>
  498. <listitem><para><link linkend="zend.service.technorati.classes.keyinforesult"><classname>Zend_Service_Technorati_KeyInfoResult</classname></link></para></listitem>
  499. </itemizedlist>
  500. </para>
  501. <note>
  502. <para>
  503. <classname>Zend_Service_Technorati_GetInfoResult</classname>、
  504. <classname>Zend_Service_Technorati_BlogInfoResult</classname>
  505. そして <classname>Zend_Service_Technorati_KeyInfoResult</classname>
  506. には上にあげたクラスと異なる点があります。これらは結果セットに属しておらず、
  507. インターフェイスを実装していません。これらは単一のレスポンスオブジェクトを表し、
  508. <classname>Zend_Service_Technorati_Author</classname> や <classname>Zend_Service_Technorati_Weblog</classname>
  509. といった <classname>Zend_Service_Technorati</classname> のオブジェクトのラッパーとして働きます。
  510. </para>
  511. </note>
  512. <para>
  513. <classname>Zend_Service_Technorati</classname> には、これ以外にも
  514. 特定のレスポンスオブジェクトを表す便利なクラスが含まれています。
  515. <classname>Zend_Service_Technorati_Author</classname> は、Technorati のアカウント
  516. (ブログの著者、いわゆるブロガー) を表します。
  517. <classname>Zend_Service_Technorati_Weblog</classname> は単一のウェブログオブジェクトを表します。
  518. ここには、フィードの URL やブログ名などの情報が含まれます。詳細は
  519. <ulink url="http://framework.zend.com/apidoc/core/">API リファレンスガイド</ulink>
  520. の <classname>Zend_Service_Technorati</classname> を参照ください。
  521. </para>
  522. <sect3 id="zend.service.technorati.classes.resultset">
  523. <title>Zend_Service_Technorati_ResultSet</title>
  524. <para>
  525. <classname>Zend_Service_Technorati_ResultSet</classname> は最も重要な結果セットです。
  526. クエリ固有の結果セットクラス群はこのクラスを継承して作成しています。
  527. このクラス自体のインスタンスを直接作成してはいけません。
  528. 各子クラスは、クエリの種類に応じた
  529. <link linkend="zend.service.technorati.classes.result"><classname>Zend_Service_Technorati_Result</classname></link>
  530. オブジェクトのコレクションを表します。
  531. </para>
  532. <para>
  533. <classname>Zend_Service_Technorati_ResultSet</classname> は PHP の <code>SeekableIterator</code>
  534. インターフェイスを実装しており、<code>foreach</code>
  535. 文で結果を処理することができます。
  536. </para>
  537. <example id="zend.service.technorati.classes.resultset.example-1">
  538. <title>結果セットコレクション内の結果オブジェクトの反復処理</title>
  539. <programlisting language="php"><![CDATA[
  540. // 単純なクエリを実行します
  541. $technorati = new Zend_Service_Technorati('VALID_API_KEY');
  542. $resultSet = $technorati->search('php');
  543. // $resultSet は Zend_Service_Technorati_SearchResultSet
  544. // のインスタンスです
  545. // これは Zend_Service_Technorati_ResultSet を継承しています
  546. foreach ($resultSet as $result) {
  547. // Zend_Service_Technorati_SearchResult オブジェクトに対して
  548. // 何らかの操作をします
  549. }
  550. ]]></programlisting>
  551. </example>
  552. </sect3>
  553. <sect3 id="zend.service.technorati.classes.cosmosresultset">
  554. <title>Zend_Service_Technorati_CosmosResultSet</title>
  555. <para>
  556. <classname>Zend_Service_Technorati_CosmosResultSet</classname> は
  557. Technorati Cosmos クエリの結果セットを表します。
  558. </para>
  559. <note>
  560. <para>
  561. <classname>Zend_Service_Technorati_CosmosResultSet</classname> は
  562. <link linkend="zend.service.technorati.classes.resultset">Zend_Service_Technorati_ResultSet</link>
  563. を継承しています。
  564. </para>
  565. </note>
  566. </sect3>
  567. <sect3 id="zend.service.technorati.classes.searchresultset">
  568. <title>Zend_Service_Technorati_SearchResultSet</title>
  569. <para>
  570. <classname>Zend_Service_Technorati_SearchResultSet</classname> は
  571. Technorati Search クエリの結果セットを表します。
  572. </para>
  573. <note>
  574. <para>
  575. <classname>Zend_Service_Technorati_SearchResultSet</classname> は
  576. <link linkend="zend.service.technorati.classes.resultset">Zend_Service_Technorati_ResultSet</link>
  577. を継承しています。
  578. </para>
  579. </note>
  580. </sect3>
  581. <sect3 id="zend.service.technorati.classes.tagresultset">
  582. <title>Zend_Service_Technorati_TagResultSet</title>
  583. <para>
  584. <classname>Zend_Service_Technorati_TagResultSet</classname> は
  585. Technorati Tag クエリの結果セットを表します。
  586. </para>
  587. <note>
  588. <para>
  589. <classname>Zend_Service_Technorati_TagResultSet</classname> は
  590. <link linkend="zend.service.technorati.classes.resultset">Zend_Service_Technorati_ResultSet</link>
  591. を継承しています。
  592. </para>
  593. </note>
  594. </sect3>
  595. <sect3 id="zend.service.technorati.classes.dailycountsresultset">
  596. <title>Zend_Service_Technorati_DailyCountsResultSet</title>
  597. <para>
  598. <classname>Zend_Service_Technorati_DailyCountsResultSet</classname> は
  599. Technorati DailyCounts クエリの結果セットを表します。
  600. </para>
  601. <note>
  602. <para>
  603. <classname>Zend_Service_Technorati_DailyCountsResultSet</classname> は
  604. <link linkend="zend.service.technorati.classes.resultset">Zend_Service_Technorati_ResultSet</link>
  605. を継承しています。
  606. </para>
  607. </note>
  608. </sect3>
  609. <sect3 id="zend.service.technorati.classes.tagsresultset">
  610. <title>Zend_Service_Technorati_TagsResultSet</title>
  611. <para>
  612. <classname>Zend_Service_Technorati_TagsResultSet</classname> は
  613. Technorati TopTags あるいは BlogPostTags クエリの結果セットを表します。
  614. </para>
  615. <note>
  616. <para>
  617. <classname>Zend_Service_Technorati_TagsResultSet</classname> は
  618. <link linkend="zend.service.technorati.classes.resultset">Zend_Service_Technorati_ResultSet</link>
  619. を継承しています。
  620. </para>
  621. </note>
  622. </sect3>
  623. <sect3 id="zend.service.technorati.classes.result">
  624. <title>Zend_Service_Technorati_Result</title>
  625. <para>
  626. <classname>Zend_Service_Technorati_Result</classname> は最も重要な結果オブジェクトです。
  627. クエリ固有の結果クラス群はこのクラスを継承して作成しています。
  628. このクラス自体のインスタンスを直接作成してはいけません。
  629. </para>
  630. </sect3>
  631. <sect3 id="zend.service.technorati.classes.cosmosresult">
  632. <title>Zend_Service_Technorati_CosmosResult</title>
  633. <para>
  634. <classname>Zend_Service_Technorati_CosmosResult</classname> は
  635. Technorati Cosmos クエリの単一の結果オブジェクトを表します。
  636. 単体のオブジェクトとして返されることはなく、常に
  637. <link linkend="zend.service.technorati.classes.cosmosresultset">Zend_Service_Technorati_CosmosResultSet</link>
  638. オブジェクトに含まれる形式で返されます。
  639. </para>
  640. <note>
  641. <para>
  642. <classname>Zend_Service_Technorati_CosmosResult</classname> は
  643. <link linkend="zend.service.technorati.classes.result">Zend_Service_Technorati_Result</link>
  644. を継承しています。
  645. </para>
  646. </note>
  647. </sect3>
  648. <sect3 id="zend.service.technorati.classes.searchresult">
  649. <title>Zend_Service_Technorati_SearchResult</title>
  650. <para>
  651. <classname>Zend_Service_Technorati_SearchResult</classname> は
  652. Technorati Search クエリの単一の結果オブジェクトを表します。
  653. 単体のオブジェクトとして返されることはなく、常に
  654. <link linkend="zend.service.technorati.classes.searchresultset">Zend_Service_Technorati_SearchResultSet</link>
  655. オブジェクトに含まれる形式で返されます。
  656. </para>
  657. <note>
  658. <para>
  659. <classname>Zend_Service_Technorati_SearchResult</classname> は
  660. <link linkend="zend.service.technorati.classes.result">Zend_Service_Technorati_Result</link>
  661. を継承しています。
  662. </para>
  663. </note>
  664. </sect3>
  665. <sect3 id="zend.service.technorati.classes.tagresult">
  666. <title>Zend_Service_Technorati_TagResult</title>
  667. <para>
  668. <classname>Zend_Service_Technorati_TagResult</classname> は
  669. Technorati Tag クエリの単一の結果オブジェクトを表します。
  670. 単体のオブジェクトとして返されることはなく、常に
  671. <link linkend="zend.service.technorati.classes.tagresultset">Zend_Service_Technorati_TagResultSet</link>
  672. オブジェクトに含まれる形式で返されます。
  673. </para>
  674. <note>
  675. <para>
  676. <classname>Zend_Service_Technorati_TagResult</classname> は
  677. <link linkend="zend.service.technorati.classes.result">Zend_Service_Technorati_Result</link>
  678. を継承しています。
  679. </para>
  680. </note>
  681. </sect3>
  682. <sect3 id="zend.service.technorati.classes.dailycountsresult">
  683. <title>Zend_Service_Technorati_DailyCountsResult</title>
  684. <para>
  685. <classname>Zend_Service_Technorati_DailyCountsResult</classname> は
  686. Technorati DailyCounts クエリの単一の結果オブジェクトを表します。
  687. 単体のオブジェクトとして返されることはなく、常に
  688. <link linkend="zend.service.technorati.classes.dailycountsresultset">Zend_Service_Technorati_DailyCountsResultSet</link>
  689. オブジェクトに含まれる形式で返されます。
  690. </para>
  691. <note>
  692. <para>
  693. <classname>Zend_Service_Technorati_DailyCountsResult</classname> は
  694. <link linkend="zend.service.technorati.classes.result">Zend_Service_Technorati_Result</link>
  695. を継承しています。
  696. </para>
  697. </note>
  698. </sect3>
  699. <sect3 id="zend.service.technorati.classes.tagsresult">
  700. <title>Zend_Service_Technorati_TagsResult</title>
  701. <para>
  702. <classname>Zend_Service_Technorati_TagsResult</classname> は
  703. Technorati TopTags あるいは BlogPostTags クエリの単一の結果オブジェクトを表します。
  704. 単体のオブジェクトとして返されることはなく、常に
  705. <link linkend="zend.service.technorati.classes.tagsresultset">Zend_Service_Technorati_TagsResultSet </link>
  706. オブジェクトに含まれる形式で返されます。
  707. </para>
  708. <note>
  709. <para>
  710. <classname>Zend_Service_Technorati_TagsResult</classname> は
  711. <link linkend="zend.service.technorati.classes.result">Zend_Service_Technorati_Result</link>
  712. を継承しています。
  713. </para>
  714. </note>
  715. </sect3>
  716. <sect3 id="zend.service.technorati.classes.getinforesult">
  717. <title>Zend_Service_Technorati_GetInfoResult</title>
  718. <para>
  719. <classname>Zend_Service_Technorati_GetInfoResult</classname> は
  720. Technorati GetInfo クエリの単一の結果オブジェクトを表します。
  721. </para>
  722. </sect3>
  723. <sect3 id="zend.service.technorati.classes.bloginforesult">
  724. <title>Zend_Service_Technorati_BlogInfoResult</title>
  725. <para>
  726. <classname>Zend_Service_Technorati_BlogInfoResult</classname> は
  727. Technorati BlogInfo クエリの単一の結果オブジェクトを表します。
  728. </para>
  729. </sect3>
  730. <sect3 id="zend.service.technorati.classes.keyinforesult">
  731. <title>Zend_Service_Technorati_KeyInfoResult</title>
  732. <para>
  733. <classname>Zend_Service_Technorati_KeyInfoResult</classname> は
  734. Technorati KeyInfo クエリの単一の結果オブジェクトを表します。
  735. これは
  736. <link linkend="zend.service.technorati.checking-api-daily-usage">Technorati API キーの使用状況</link>
  737. についての情報を提供します。
  738. </para>
  739. </sect3>
  740. </sect2>
  741. </sect1>