Zend_Service_Technorati.xml 43 KB

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