我在使用Google App Engine的Twitter搜索API时遇到了问题。在个人开发环境中,我没有任何问题,可以得到我想要的JSON数据。然而,一旦代码部署到App Engine上,我就遇到了HTTP 500错误代码。
我能想到的唯一原因是,我可能忽略了开发环境和生产环境之间的一些根本性差异,或者Twitter拒绝了我从App Engine运行的IP的请求。我编写了一个小的@app.route来绝对验证是否存在问题-如下所示。
我相当确定我没有达到速率限制,因为Twitter搜索API并没有明确规定速率限制。我看到他们请求了一个用户代理,所以我一直提供这个,但我仍然得到了相同的500错误。
我正在处理的实际版本在这里:http://1-alpha-3.rich90usa.appspot.com/twitter_test
非常感谢您对此问题的任何想法。
Flask相关部分:
@app.route('/twitter_test')
def twitter_test():
twitter_geo_url = 'http://search.twitter.com/search.json?callback=?&rpp=100&geocode=29.6516344,-82.3248262,3mi'
twitter_result = urlfetch.fetch(twitter_geo_url, fetch_headers)
if twitter_result.status_code == 200:
return twitter_result.content
其中'fetch_headers'是之前定义的:
fetch_headers = {'User-Agent': "APPNAME-1-alpha-3"}
我的Flask Python文件的开头:
from flask import Flask, request, render_template, session, redirect
import oauth2 as oauth
import simplejson as json
import urlparse
import urllib
import httplib
import time
from google.appengine.api import urlfetch