我在使用Google App Engine從Twitter搜索API獲取數據時遇到問題。在個人發展環境中工作,我沒有任何問題。我能夠獲得我想要的JSON。但是,一旦將代碼部署到App Engine後,我會遇到HTTP 500錯誤代碼。App Engine - 難以訪問Twitter數據 - Flask
我對發生的事情的唯一想法是,我缺少的開發和實時App Engine環境和/或Twitter拒絕來自App Engine IP的請求之間存在一些根本區別我正在運行從。我寫了一個小的@ app.route來絕對驗證是否存在問題 - 下面是。
我很確定我沒有達到費率限制,因爲Twitter搜索API沒有明確的限制。我看到他們要求一個用戶代理,所以我一直在提供,但我仍然得到相同的500錯誤。
什麼我工作的現場版是在這裏:
上發生了什麼事情錯在這裏任何想法,將不勝感激。
從瓶相關章節:
@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"}
頂我的瓶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
需要錯誤消息+堆棧跟蹤。 – hyperslug 2011-04-28 13:23:44
所有App Engine請求都來自同一個IP池。可能是因爲Twitter正在從App Engine IP獲取如此多的搜索請求,以至於阻止了進一步的查詢。我相信這在GAE之前就已經發生過。 – Calvin 2011-04-28 16:14:57
相關:http://stackoverflow.com/questions/4821888/app-engine-alternatives-to-urlfetch-seems-very-unreliable和http://stackoverflow.com/questions/4722315/cron-works-on-local -host-but-not-when-deployed-appengine – systempuntoout 2011-04-29 07:49:05