以下はローカルでは機能しますが、デプロイ時には機能しません。
import urllib
import urllib2
import simplejson as json
url = 'https://www.googleapis.com/rpc'
requests = [{
'method': 'freebase.text.get',
'apiVersion': 'v1',
'params': {
'id': ['en','bob_dylan']
}
},{
'method': 'freebase.text.get',
'apiVersion': 'v1',
'params': {
'id': ['en','blade_runner']
}
}]
headers = { 'Content-Type': 'application/json' }
req = urllib2.Request(url, json.dumps(requests), headers)
response = urllib2.urlopen(req)
print response.read()
デプロイすると、次のエラーがスローされます。
class 'urllib2.HTTPError': HTTP Error 404: Not Found
Traceback (most recent call last):
File "/base/data/home/apps/s~34thquote/1.359254037177435492/test.py", line 38, in <module>
response = urllib2.urlopen(req)
File "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", line 124, in urlopen
return _opener.open(url, data)
File "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", line 387, in open
response = meth(req, response)
File "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", line 498, in http_response
'http', request, response, code, msg, hdrs)
File "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", line 425, in error
return self._call_chain(*args)
File "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", line 360, in _call_chain
result = func(*args)
File "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", line 506, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
これは、この問題に関連している可能性があります: appengine へのデプロイ時の freebase api エラー: DownloadError: ApplicationError: 2この場合、API キーをリクエストに追加すると修正される可能性があります。(urlfetchを使用して)キーを追加しようとするとエラーが発生しました:
{u'code': 100, u'message': u'Invalid API Key (Key not found)', u'stat': u'fail'}.
freebase サービスを登録し、ブラウザー アプリのシンプルな API キーをクエリに追加しました: '&key=apikeystringhere'。キーの問題を別の質問として追加しました: appengine から freebase クエリの API キーを設定する