我是一名社交学家,正在研究Facebook应用程序,作为我正在进行的一项新研究的一部分,该研究报告非营利组织的职位是如何传播的 .

我的编程技能有限,但不是很糟糕,并聘请某人编写一个应用程序,从每个组织中提取洞察数据(当然,在用户身份验证之后),然后将csv邮寄到电子邮件帐户 . 该应用程序用于从Graph API获取所有可用数据,但截至3周前,它开始仅提取最近三天的数据 .

这是我在应用中使用的电话:

#Get Insights数据#insight = myfbfunctions.graph_api_call(access_token,oid,'insights',{'since':date,'until':date datetime.timedelta(1)})start_date,end_date = self.GetPeriod(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()

我不清楚该应用程序是否因为Facebook API的某些变化或服务器上的错误而无法正常工作 . 我开始怀疑前者,因为我无法找到其他人处理这个问题的证据 .