LINUX.ORG.RU

Проблемы с удалением твитов через Twitter API

 ,


0

1

Стоит задача удалить из профиля Twitter около 3000 спамовых твитов. Все твиты созданы в один день, я могу даже построить их список. При этом они странно устроены, например, поиск по пользователю и дате их не находит ни через сайт ни через API, хотя в ленте этого пользователя они видны и на сайте и через API.

Но дело даже не совсем в этом. Я освоил Twitter API настолько, что успешно могу создать новый твит с помощью statuses/update, то есть, видимых проблем с авторизацией доступа я не вижу. Однако при попытке удалить такой свежесозданный твит по идентификатору с помощью statuses/destroy через тот же самый интерфейс приводит к ошибке

{"errors":[{"message":"Your credentials do not allow access to this resource","code":220}]}

Права приложению я дал полные, иначе как бы мне удалось создать новый твит?

Правда, не совсем понятно, в документации по statuses/destroy указывается, что id твита нужно задавать в url, и одновременно там же приводится необходимость задать id уничтожаемого твита как параметр. Я пробовал разные комбинации, но все завершаются с одним и тем же результатом.

Может быть, я использую для уничтожения не тот метод, и какой в таком случае нужно использовать? Может ли кто объяснить, что я еще делаю не так?

Ответ на: комментарий от Dron

Спасибо, логика подсказки в целом понятна. Однако, чуть выше читаем

When issuing requests using application-only auth, there is no concept of a “current user.” Therefore, endpoints such as POST statuses / update will not function with application-only auth.

То есть, если бы у меня не был авторизован пользователь, я бы даже не смог создать твит. А это у меня получилось. Точно так же, как мне удается успешно вызвать statuses/home_timeline, который тоже как бы требует пользовательского контекста.

При всем при этом пользователя я авторизовал при входе на сайт через браузер, после чего и update и home_timeline заработали автомагически. Конечно же, не исключаю, что авторизации через браузер может быть недостаточно, но тогда вопрос --- почему работают update и home_timeline?

eugine_kosenko ★★★
() автор топика
Ответ на: комментарий от Dron

Вышел из учетки в браузере --- home_timeline работает. :-(

Как страшно жить... Похоже, это и есть та самая дыра, через которую спамили учетку?..

eugine_kosenko ★★★
() автор топика

Так, ситуация прояснилась.

Проблема была в том, что все запросы, изменяющие состояние учетки, должны отсылаться по методу POST. я не сразу обратил на это внимание.

Авторизация пользователя производится в момент, когда я генерирую ключ доступа из своей учетки. Именно этот ключ впоследствии определяет контекст пользователя.

Новая странность в том, что теперь даже зарезание прав для приложения в «только для чтения» все равно не блокирует вызовы update и destroy. Но сейчас это несущественно.

Спасибо за участие!

eugine_kosenko ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.