Facebook приложение, которое извлекает данные Insights

Я социолог, работающий над приложением для Facebook в рамках нового исследования, которое я провожу о том, как посты некоммерческих организаций становятся вирусными.

У меня были ограниченные, но не очень хорошие навыки программирования, и я нанял кого-то, чтобы написать приложение, которое извлекает аналитические данные из каждой организации (после аутентификации пользователя, конечно), а затем отправляет CSV в учетную запись электронной почты. Раньше приложение получало все доступные данные из API Graph, но 3 недели назад оно начало извлекать только три последних дня данных.

Вот звонок, который я использую в приложении:

# Получить данные Insights # insights = myfbfunctions.graph_api_call(access_token, oid, 'insights', {'начиная с': дата, 'до': date+datetime.timedelta(1)}) start_date, end_date = self.GetPeriod(access_token, access_token, oid) today = datetime.datetime.now().date()

# Prepare output
result = ['name,%s,url,%s' % (name, url), 'object_id,metric,end_time,period,value']

insights = myfbfunctions.graph_api_call(access_token, oid, 'insights',\
        {'period': 86400 , 'end_time': start_date})

temp_date = datetime.datetime.strptime(insights['data'][0]['values'][-1]['end_time'], '%Y-%m-%dT%H:%M:%S+0000').date()
first_iteration = True
while first_iteration or temp_date <= today:
  first_iteration = False
  for metric in insights['data']:
    for row in metric['values']:
      date = datetime.datetime.strptime(row['end_time'], '%Y-%m-%dT%H:%M:%S+0000').date() + datetime.timedelta(-1)
      result.append('%s,%s,%s,%s,%s' % (metric['id'].partition('/')[0], metric['name'], date,metric['period'], row['value']))
  insights = json.loads(urllib2.urlopen(insights['paging']['next']).read())
  temp_date = datetime.datetime.strptime(insights['data'][0]['values'][-1]['end_time'], '%Y-%m-%dT%H:%M:%S+0000').date()

buffer = StringIO()
temp_file = gzip.GzipFile(mode='wb', fileobj=buffer)
temp_file.write('\n'.join(result))
temp_file.close()
result = buffer.getvalue()
buffer.close()

Я не уверен, что приложение больше не работает из-за некоторых изменений в API Facebook или из-за ошибки на сервере. Я начинаю подозревать первое, так как не могу найти доказательств того, что кто-то еще занимался этим вопросом.

0 ответов

Другие вопросы по тегам