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