2012-06-24 6 views
1

Я пытаюсь обновить старый плагин Wordpress, в котором перечислены последние коммиты пользователя на их веб-сайте. Это было очень просто с github API v2, но v3 делает его намного более сложным.Реализация автоматических вызовов Github API v3 в плагине Wordpress

Функционально, это очень просто: когда плагин запущен, он перечисляет коммиты на сайте Wordpress и автоматически обновляет его содержимое каждые N минут (настраивается администратором Wordpress). Администратору просто нужно настроить его один раз, и он выясняет, когда повторно запрашивать github для получения последних данных.

Но с github API v3 для любого запроса на получение общедоступных данных требуется токен OAUTH. После прочтения своих документов снова и снова, кажется, что он не может быть автоматизирован, чтобы работать так, как я хочу.

Во-первых, я не хочу хранить пароль пользователя github в любом месте (потому что его нужно будет зашифровать в двух направлениях для использования в вызовах API, что недостаточно безопасно), поэтому базовый метод проверки подлинности вне. Что оставляет здесь пример «Потока веб-приложений» (http://developer.github.com/v3/oauth/). Но это связано с перенаправлением фактического пользователя в github для принятия запроса. Это тоже нехорошо.

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

Пожалуйста, дайте мне знать, если я не понимаю ничего!

ответ

0

Но с github API v3 для любого запроса на получение общедоступных данных требуется токен OAUTH.

Это просто неправда. Для общедоступных данных вы можете запросить конечную точку API GitHub без передачи каких-либо учетных данных. Смотрите, например этот API вызова для извлечения информации о пользователе: https://api.github.com/users/izuzak

Таким образом, чтобы получить все события, выполняемые пользователем, просто вызовите API следующим образом: https://api.github.com/users/izuzak/events

Обратите внимание, что это дает вам все события , а не только событие commit (например, он также дает вам возможность наблюдать за событиями), поэтому вам нужно отфильтровать их. Смотрите это для всех типов событий: http://developer.github.com/v3/activity/events/types/

Кроме того, вместо вызова API конечной точки, всегда есть возможность:

Тем не менее, оба они дают вам все события для пользователя, не просто совершает.

Смежные вопросы