Вопрос

У меня проблемы с получением данных из API поиска в Твиттере с помощью Google App Engine. Работая в среде личного развития, у меня нет проблем. Я могу получить JSON, который хочу. Однако, как только код будет развернут в App Engine, я столкнулся с кодом ошибки HTTP 500.

Единственные идеи, которые у меня есть для того, что происходит, это то, что существует какая -то фундаментальная разница между средами Dev и Live App Engine, которые мне не хватает, и/или что Twitter отказывается от запросов от IP Engine App Engine. Я написал небольшое @app.route, чтобы абсолютно убедиться, что есть проблемы - это ниже.

Я почти уверен, что не достигаю ограничения по ставке, потому что API поиска в Твиттере явно не имеет его. Я видел, что они запросили пользовательский агент, поэтому я предоставил это, но я все еще получаю ту же 500 ошибок.

Живая версия того, с чем я работаю здесь: http://1-alpha-3.rich90usa.appspot.com/twitter_test

Любые мысли о том, что здесь идет не так, будут очень оценены.

Соответствующий раздел из колбы:

@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
Это было полезно?

Решение

Как указывал Кэлвин, все приложения приложений приложений приложений исходят из HTTP -запросов из одного и того же пула IPS, поэтому проблема почти наверняка ограничивает оценку:

Из http://dev.twitter.com/pages/rate limiting:

Тем не менее, все запросы, поступающие с IP -адреса, применяются к ограничению скорости поиска. Предел скорости поиска не обнародовал ненужное использование поиска и злоупотребления, но оно выше, чем предел скорости отдыха. Мы считаем, что предел скорости поиска является одновременно либеральным и достаточным для большинства приложений, и знаем, что многие поставщики приложений нашли его подходящим для их потребностей.

Они также называют GAE, специально не имеющим права на белое лицо:

Приложение должно иметь статический IP, чтобы иметь право на получение белого списка. Это означает, что большинство облачных платформ, включая Google App Engine, нельзя белостистистическо.

Предложение Twitter о ограничении ставок состоит в том, чтобы переключиться на потоковой API.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top