Получение заметок из Evernote API с помощью тегов в Stack Overflow

Я использую PHP Evernote SDK, и мне нужно получить список отмеченных заметок.
Когда я фильтрую по ключевому слову или блокноту, это работает, но как только я устанавливаю tagGuids, я получаю пустой список.

Вот пример кода:

$noteFilter=new EDAM\NoteStore\NoteFilter();

#For the sake of this example, I'm just getting all existing tags
#and adding them to filter so it should:
$tags=$noteStore->listTags($token);
$noteFilter->tagGuids=Array();
foreach($tags as $tag){
$noteFilter->tagGuids[]=$tag->guid;
}

$notes=$noteStore->findNotes($token,$noteFilter,0,20);

У меня есть заметки с тегами. Но это то, что я получаю в результате, пустой список:

EDAM\NoteStore\NoteList Object
(
[startIndex] => 0
[totalNotes] => 0
[notes] => Array
(
)

[stoppedWords] =>
[searchedWords] =>
[updateCount] => 139
)

0

Решение

На самом деле, вы не можете делать этот вид поиска. Использование свойства tagGuids с, скажем, двумя тегами приведет к поиску заметок, содержащих эти два тега. в то же время.
Это поиск «И», а не «ИЛИ».

Одним из вариантов будет сделать несколько поисков, каждый с одним тегом и слияние результатов …
Не оптимально, но, боюсь, это единственное решение, которое у вас есть.

Вы можете найти некоторую помощь здесь: https://dev.evernote.com/doc/articles/search_grammar.php

Кстати, findNotes методы устарели. Вы должны использовать findNotesMetadata метод:

$resultSpec = new \EDAM\NoteStore\NotesMetadataResultSpec();
$resultSpec->includeTitle;
$resultSpec->includeTagGuids;

$notes=$noteStore->findNotesMetadata($authToken,$noteFilter,0,20, $resultSpec);
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector