1 <?xml version="1.0" encoding="UTF-8"?>
3 <!-- EN-Revision: 20818 -->
4 <sect1 id="zend.service.simpy">
5 <title>Zend_Service_Simpy</title>
7 <sect2 id="zend.service.simpy.introduction">
11 <classname>Zend_Service_Simpy</classname> は、ソーシャルブックマークサービスである
12 Simpy 用のフリーな REST <acronym>API</acronym> の、軽量なラッパーです。
16 <classname>Zend_Service_Simpy</classname> を使用するには
17 Simpy アカウントが必要です。アカウントを取得するには、
18 <ulink url="http://simpy.com">Simpy のウェブサイト</ulink> にいきます。
19 Simpy REST <acronym>API</acronym> についての詳細な情報は
20 <ulink url="http://www.simpy.com/doc/api/rest">Simpy REST <acronym>API</acronym> ドキュメント</ulink>
25 Simpy REST <acronym>API</acronym> を使用すると、Simpy
26 のウェブサイトが提供するサービスを利用できます。
27 以下の節は、<classname>Zend_Service_Simpy</classname>
58 <sect2 id="zend.service.simpy.links">
62 リンクを問い合わせると、登録日の降順で結果が返されます。
63 リンクの検索は、タイトルやニックネーム、タグ、メモ
64 そしてリンクに関連付けられたウェブページの内容にもとづいて行うことができます。
65 Simpy の検索は、これらのフィールドのいずれかあるいはすべてを対象に
66 フレーズや論理演算子、ワイルドカードを使用して行うことができます。
68 <ulink url="http://www.simpy.com/faq#searchSyntax">検索構文</ulink> や
69 <ulink url="http://www.simpy.com/faq#searchFieldsLinks">検索フィールド</ulink>
73 <example id="zend.service.simpy.links.querying">
74 <title>リンクの問い合わせ</title>
76 <programlisting language="php"><![CDATA[
77 $simpy = new Zend_Service_Simpy('あなたのユーザ名', 'あなたのパスワード');
79 /* 直近に追加された 10 件のリンクを探します */
80 $linkQuery = new Zend_Service_Simpy_LinkQuery();
81 $linkQuery->setLimit(10);
84 $linkSet = $simpy->getLinks($linkQuery);
85 foreach ($linkSet as $link) {
89 echo $link->getTitle();
93 /* 直近に追加されたリンクのうち、タイトルに 'PHP' が含まれるものを
95 $linkQuery->setQueryString('title:PHP');
96 $linkQuery->setLimit(5);
98 /* タイトルに 'French'、タグに 'language' が含まれる
100 $linkQuery->setQueryString('+title:French +tags:language');
102 /* タイトルに 'French' を含み、タグに 'travel' を含まない
104 $linkQuery->setQueryString('+title:French -tags:travel');
106 /* 2006/12/09 に追加されたすべてのリンクを探します */
107 $linkQuery->setDate('2006-12-09');
109 /* 2006/12/09 より後 (その日を含まない) に追加された
111 $linkQuery->setAfterDate('2006-12-09');
113 /* 2006/12/09 より前 (その日を含まない) に追加された
115 $linkQuery->setBeforeDate('2006-12-09');
117 /* 2006/12/01 から 2006/12/09 (両端の日を含まない) に追加された
119 $linkQuery->setBeforeDate('2006-12-01');
120 $linkQuery->setAfterDate('2006-12-09');
125 リンクの識別は、<acronym>URL</acronym> によって行います。言い換えると、
126 既存のリンクと同じ <acronym>URL</acronym> のリンクを保存しようとすると
127 既存のリンクが新しいデータで上書きされるということです。
130 <example id="zend.service.simpy.links.modifying">
131 <title>リンクの変更</title>
133 <programlisting language="php"><![CDATA[
134 $simpy = new Zend_Service_Simpy('あなたのユーザ名', 'あなたのパスワード');
138 'Zend Framework' // タイトル
139 'http://framework.zend.com', // URL
140 Zend_Service_Simpy_Link::ACCESSTYPE_PUBLIC, // アクセス形式
141 'zend, framework, php' // タグ
142 'Zend Framework home page' // 別のタイトル
143 'This site rocks!' // メモ
146 /* 既存のリンクを新しいデータで上書きします */
149 'http://framework.zend.com',
150 Zend_Service_Simpy_Link::ACCESSTYPE_PRIVATE, // アクセス形式を変更しました
151 'php, zend, framework' // タグの順番を変更しました
152 'Zend Framework' // 別のタイトルを変更しました
153 'This site REALLY rocks!' // メモを変更しました
157 $simpy->deleteLink('http://framework.zend.com');
159 /* あなたのリンクを大掃除する簡単な方法 (^o^) */
160 $linkSet = $this->_simpy->getLinks();
161 foreach ($linkSet as $link) {
162 $this->_simpy->deleteLink($link->getUrl());
168 <sect2 id="zend.service.simpy.tags">
172 取得時に、そのタグを使用しているリンク数の降順
173 (多いものが先) でタグが並べ替えられます。
176 <example id="zend.service.simpy.tags.working">
179 <programlisting language="php"><![CDATA[
180 $simpy = new Zend_Service_Simpy('あなたのユーザ名', 'あなたのパスワード');
184 'Zend Framework' // タイトル
185 'http://framework.zend.com', // URL
186 Zend_Service_Simpy_Link::ACCESSTYPE_PUBLIC, // アクセス形式
187 'zend, framework, php' // タグ
190 /* リンクおよびメモで使用しているすべてのタグの一覧を取得します */
191 $tagSet = $simpy->getTags();
193 /* 各タグと、それを使用しているリンク数を表示します */
194 foreach ($tagSet as $tag) {
197 echo $tag->getCount();
201 /* 'zend' タグを使用しているすべてのリンクから、そのタグを削除します */
202 $simpy->removeTag('zend');
204 /* 'framework' タグの名前を 'frameworks' に変更します */
205 $simpy->renameTag('framework', 'frameworks');
207 /* 'frameworks' タグを 'framework' および
208 'development' に分割します。つまり、'frameworks' タグを
209 使用しているすべてのリンクからこのタグを削除し、'framework'
210 および 'development' をそれらのリンクに追加します */
211 $simpy->splitTag('frameworks', 'framework', 'development');
213 /* 'framework' および 'development' のふたつのタグを
214 'frameworks' に統合します。これは分割の反対の作業です */
215 $simpy->mergeTags('framework', 'development', 'frameworks');
220 <sect2 id="zend.service.simpy.notes">
225 メモは、数値 ID によって識別されます。
228 <example id="zend.service.simpy.notes.working">
231 <programlisting language="php"><![CDATA[
232 $simpy = new Zend_Service_Simpy('あなたのユーザ名', 'あなたのパスワード');
238 'This is a test note.' // 説明
243 'Updated Test Note', // タイトル
244 'test,note,updated', // タグ
245 'This is an updated test note.', // 説明
246 $note->getId() // 一意な ID
249 /* 直近に追加された 10 件のメモを探します */
250 $noteSet = $simpy->getNotes(null, 10);
253 foreach ($noteSet as $note) {
255 echo $note->getTitle();
257 echo $note->getDescription();
259 echo $note->getTags();
263 /* タイトルに 'PHP' が含まれるすべてのメモを探します */
264 $noteSet = $simpy->getNotes('title:PHP');
266 /* タイトルに 'PHP' が含まれ、説明に 'framework' が含まれない
268 $noteSet = $simpy->getNotes('+title:PHP -description:framework');
271 $simpy->deleteNote($note->getId());
276 <sect2 id="zend.service.simpy.watchlists">
277 <title>ウォッチリスト</title>
280 ウォッチリストは、<acronym>API</acronym> を用いて作成したり削除したりすることはできません。
281 取得のみが可能です。したがって、<acronym>API</acronym> を使用してアクセスする前には
282 Simpy のウェブサイトでウォッチリストを作成しておく必要があります。
285 <example id="zend.service.simpy.watchlists.retrieving">
286 <title>ウォッチリストの取得</title>
288 <programlisting language="php"><![CDATA[
289 $simpy = new Zend_Service_Simpy('あなたのユーザ名', 'あなたのパスワード');
291 /* すべてのウォッチリストの一覧を取得します */
292 $watchlistSet = $simpy->getWatchlists();
294 /* 各ウォッチリストのデータを表示します */
295 foreach ($watchlistSet as $watchlist) {
296 echo $watchlist->getId();
298 echo $watchlist->getName();
300 echo $watchlist->getDescription();
302 echo $watchlist->getAddDate();
304 echo $watchlist->getNewLinks();
307 foreach ($watchlist->getUsers() as $user) {
312 foreach ($watchlist->getFilters() as $filter) {
313 echo $filter->getName();
315 echo $filter->getQuery();
320 /* 個々のウォッチリストを、ID を指定して取得します */
321 $watchlist = $simpy->getWatchlist($watchlist->getId());
322 $watchlist = $simpy->getWatchlist(1);