Как использовать Posterous API, чтобы "почистить" свой собственный сайт для получения информации об участнике, дате и ответной информации
Как преподавателю колледжа в STEM, мне нравится, когда я могу использовать технологии, чтобы улучшить учебный опыт своих учеников, и мне вдвойне нравится, когда это позволяет мне также познакомить их с крутыми технологиями.
В течение прошлого года у меня было несколько классов, которые делали посты на сайте Posterous (http://spectrawiki.posterous.com) и публиковали комментарии к постам других. Это необходимо для курса, и я был обременен отслеживанием активности в классе.
Я надеялся, что смогу загружать контент сайта так, чтобы он предоставил мне нужные мне данные (кто разместил, когда они разместили, и если они разместили статью или комментарий), но у Posterous такой функциональности нет. Очень отзывчивый Posterous Tech предложил мне взглянуть на API.
Но я не кодер. Я достаточно разбираюсь в кодировании (HTML, PHP, Matlab, Python, R, Mathematica), чтобы уважать тех, кто действительно знает, что делает.
Поэтому я спрашиваю сообщество Stack Overflow: как я могу соединить что-то (например, скрипт Python) с API, чтобы получить данные, которые я ищу (перечислены выше)? Есть ли какие-нибудь учебные пособия, которые позволят мне пройти через этапы создания сценария? Я никогда не использовал API раньше, поэтому я не знаю, с чего начать.
Заранее спасибо за любые указатели.
[Править] Например: у Справочника Posterous есть пример, подобный этому
curl -X PUT --user you@example.com:password -d "api_token=<your token>" -d "post[title]=New Title" http://posterous.com/api/2/sites/12345/posts/6789
когда это говорит о том, что API RESTful. Как я могу изменить эту команду curl, чтобы она возвращала некоторую информацию о моем сайте Posterous? Я могу (вероятно) обрабатывать флаги аутентификации и этот маркерный флаг. Но используя другие флаги, я могу использовать указатель.
1 ответ
Продолжение, 5 декабря 2012 г. Похоже, что пиостероз больше не работает. Мои сценарии терпят неудачу, и pyposterous не проходит свои собственные модульные тесты. Облом.
====
Pyposterous действительно дал мне инструменты для ответа на мой вопрос, поэтому я решил поделиться этим здесь с другими. Вот сценарий, который я написал:
import datetime
import pyposterous
from pyposterous import Cursor
api = pyposterous.API(username='[username]', password='[passwd]')
d=datetime.datetime.today().strftime("%y%B%d-%H%M")
filename = 'report-posts-' + str(d) +'.txt'
log=open(filename,'w')
for post in Cursor(method=api.read_posts, start_page=1, parameters={'hostname':'spectrawiki'}):
try:
print >> log, "--------------------"
print >> log, "%s, %s, %s" % (post.author, post.date, post.title)
except AttributeError:
pass # No comments
except UnicodeEncodeError:
pass
Это грубый сценарий, но он выполняет основную работу.