Zend_Gdata_Calendar
完全に一致するフレーズで Google カレンダー イベントのサブセットを返すのに問題があります。
のリファレンス ガイドZend_Gdata_Books
のsetQuery()
セクションでは、これが Zend で可能であることを示唆しています。
パラメータ値内のスペース、引用符、またはその他の句読点は、URL エスケープする必要があることに注意してください (スペースにはプラス (+) を使用します)。完全一致のフレーズを検索するには、フレーズを引用符で囲みます。たとえば、「spy plane」という語句に一致する本を検索するには、
q
パラメータをに設定します%22spy+plane%22
。
私が知る限り、同じ機能Zend_Gdata_Books
をZend_Gdata_Calendar
拡張しているsetQuery()
ため、Zend 側では同等であると考えています。
Google に関しては、Calendar クエリ パラメーター リファレンスでは、Calendar API が標準の Data API クエリ パラメーターをサポートしていると述べています。これは、示されているように、全文クエリ文字列q
が大文字と小文字を区別しない正確なフレーズ検索をサポートしていることをZend_Gdata_Books
示しています。
私はこれらすべての方法でそれを試しました:
$gCal = new Zend_Gdata_Calendar();
$query = $gCal->newEventQuery();
$query->setQuery("%22event+text%22"); //no results
$query->setQuery("%22event%20text%22"); //no results
$query->setQuery("\"event text\""); //too many results
$query->setQuery('"event text"'); //too many results
$query->setQuery("event text"); //too many results
文字列が二重に URL エンコードされているため、最初の 2 つは機能しなかったことに気付きました。後者の場合、必要なイベントだけでなく、不要な「イベント」や「テキスト」を含むイベントも取得しています。
Google がカレンダー API 用にフルテキスト クエリを別の方法で実装した可能性はありますか? それを破るために、私は自分の側でどのようなばかげたことをしているでしょうか?