python – App Engine – 难以访问Twitter数据 – Flask
我在使用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 解决方法
正如Calvin指出的那样,所有App Engine应用程序都从相同的IP池中获取出站HTTP请求,因此问题几乎肯定是速率限制:
从http://dev.twitter.com/pages/rate-limiting开始:
他们还特别指出GAE没有资格进行白名单:
Twitter提出的限制速率限制的建议是切换到the Streaming API. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |