Подтвердить что ты не робот

Как проверить API twitter локально?

Я пытаюсь написать веб-приложение, которое будет использовать Twitter через OAuth.

  • Я запускаю свой локальный сервер как "localhost", поэтому мне нужно, чтобы URL-адрес обратного вызова был чем-то вроде http://localhost/something/twitter.do, но Twitter не нравится: Недействительный формат URL

  • Я, вероятно, собираюсь сделать много тестов, но как только я одобрю свое приложение с моим именем пользователя, я не могу снова проверить, не так ли? Должен ли я создавать несколько учетных записей Twitter? Или вы можете удалить приложение и сделать это снова?

4b9b3361

Ответ 1

  • Вы можете использовать 127.0.0.1 вместо localhost.

  • Вы можете авторизовать свое приложение столько раз, сколько хотите, из одной и той же учетной записи Twitter без необходимости ее аннулирования. Тем не менее, действие аутентификации будет запрашивать только Allow/Deny один раз, и все последующие запросы аутентификации будут проходить до тех пор, пока вы не отмените привилегию.

Ответ 2

Twitter "ограничение скорости" для вызовов API GET основан на IP-адресе вызывающего. Таким образом, вы можете протестировать свое приложение с вашего сервера, используя тот же IP-адрес, и получить (после одобрения) 15 000 вызовов API в час. Это означает, что вы можете использовать в своем приложении множество разных имен пользователей, если ваш одобренный IP-адрес остается прежним.

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

Я считаю, что Twitter требует вас - если вам нужно изменить свой IP-адрес или изменить имя пользователя, использующее приложение, - отправить другой запрос с просьбой увеличить лимит скорости для этого нового IP-адреса или имени пользователя. Но, по моему опыту, Twitter довольно быстро обошел эти запросы (может быть, менее 48 часов?).

Ответ 3

Вы пытались создать свой собственный механизм кеширования? Вы можете взять результат первоначального запроса, кешировать его на локальном потоке и указать время истечения срока действия, обновить его из Twitter. Это позволит вам протестировать ваше приложение на основе данных Twitter без каких-либо штрафных санкций.

Ответ 5

В ответ на (1) см. эту тему, в частности эпизод: https://dev.twitter.com/discussions/5749

Не имеет значения, какой URL-адрес обратного вызова вы разместите на своей странице управления приложениями на dev.twitter.com(если вы не используете localhost). Вы предоставляете "реальный" URL обратного вызова как часть вашего запроса на токен OAuth.

Ответ 6

Существует также другое решение (обходное решение, скорее), которое требует, чтобы вы отредактировали файл hosts.

Вот как вы это делаете в окне linux:

  • Откройте /etc/hosts файл как root. Для этого вы можете открыть терминал и ввести что-то вроде sudo vi /etc/hosts.

  • Выберите несуществующий домен для использования в качестве локального адреса и добавьте его в свой hosts файл. Например, вам нужно будет добавить что-то похожее на следующее в конце.

    127.0.0.1 localhost.cep # this domain name was accepted.
    

Итак, это в значительной степени. Указывая ваш браузер на localhost.cep, теперь вы попадете на ваш локальный сервер. Надеюсь, что это помогло :)

Ответ 7

1.) Не используйте localhost. Это не полезно. Почему бы не встать на другой экземпляр сервера или получить тестовый фрагмент vm из slicehost?

2.) Вероятно, вам нужна группа различных учетных записей пользователей и несколько разных ключей/секретных данных OAuth для тестирования.

Вы были на правильном пути: DO тест, отменяющий учетные данные приложения через настройки подключения к вашей учетной записи Twitter. Это должно произойти изящно. Возможно, вы захотите сохранить значение статуса наряду с информацией токена доступа, чтобы вы могли отметить маркеры как отозванные.