我在使用 Google App Engine 从 Twitter 搜索 API 获取数据时遇到问题。在个人开发环境中工作我没有问题。我能够得到我想要的 JSON。但是,一旦将代码部署到 App Engine,我就会遇到 HTTP 500 错误代码。
我对正在发生的事情的唯一想法是,我缺少的开发和实时 App Engine 环境之间存在一些根本区别,和/或 Twitter 拒绝来自我正在运行的 App Engine IP 的请求。我写了一个小的@app.route 来绝对验证是否存在问题 - 如下所示。
我很确定我没有达到速率限制,因为 Twitter Search 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 py 文件的顶部:
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