0

Zend_Gdata_Calendar完全に一致するフレーズで Google カレンダー イベントのサブセットを返すのに問題があります。

リファレンス ガイドZend_Gdata_BookssetQuery()セクションでは、これが Zend で可能であることを示唆しています。

パラメータ値内のスペース、引用符、またはその他の句読点は、URL エスケープする必要があることに注意してください (スペースにはプラス (+) を使用します)。完全一致のフレーズを検索するには、フレーズを引用符で囲みます。たとえば、「spy plane」という語句に一致する本を検索するには、qパラメータをに設定します%22spy+plane%22

私が知る限り、同じ機能Zend_Gdata_BooksZend_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 用にフルテキスト クエリを別の方法で実装した可能性はありますか? それを破るために、私は自分の側でどのようなばかげたことをしているでしょうか?

4

1 に答える 1

0

試してみたいようです。これを使用すると、次$query->setQuery('"event text"');
のクエリ文字列Query string(19) "?q=%22event+text%22"
$query->setQuery("event text");
生成されます。Query string(13) "?q=event+text"

私が使用した:

$gCal = new Zend_Gdata_Calendar();
        $query = $gCal->newEventQuery();
        $query->setQuery("event text");
        Zend_Debug::dump($query->getQueryString(), 'Query');

テストする。

于 2012-08-19T07:25:58.643 に答える