#gmail #gmail-api
#gmail #gmail-api
Вопрос:
Я пытаюсь добавить простой фильтр почтовых ящиков в Gmail и получаю ошибку 400. В тексте ответа говорится, что «У фильтра нет никаких критериев», но, конечно, я считаю, что у меня есть. Вот данные полезной нагрузки:
{
"filter": [{
"id": "ABC12345-2",
"criteria": {
"from": "donald trump"
},
"action": {
"addLabelIds": ["TRASH"]
}
}]
}
Это URL-адрес, на который я отправляю:
https://gmail.googleapis.com/gmail/v1/users/{userId}/settings/filters
С аутентификацией проблем нет. Я пробовал это с полем «id» и без него. Есть идеи о том, что я делаю не так?
Ответ №1:
Я не уверен в вашем реальном сценарии. Так что я не уверен в требовании {"filter": []}
. Но когда я увидел официальный документ, кажется, что образец тела запроса для конечной POST https://gmail.googleapis.com/gmail/v1/users/{userId}/settings/filters
точки выглядит следующим образом, когда используется тело вашего запроса.
Пример тела запроса:
{
"id": "###",
"criteria": {"from": "###"},
"action": {"addLabelIds": ["TRASH"]}
}
- В этом случае, даже когда
id
не используется, ошибка не возникает. - Вы также можете протестировать выше в разделе «Попробуйте этот API».
Ссылки:
Комментарии:
1. С помощью кода «filter»: [] я просто пытался эмулировать json, который Gmail выдает при извлечении существующих фильтров, созданных в пользовательском интерфейсе Gmail. Этот формат позволяет извлекать несколько фильтров за один вызов. По-видимому, Gmail не допускает такой же кодировки при импорте. Я смог заставить его работать, выполнив один фильтр для каждого вызова. Спасибо за вашу помощь.
2. @Джефф Маккей Спасибо за ответ и добавление информации. Я рад, что ваша проблема была решена. И вам спасибо.