更新:请,如果有人可以提供帮助:Google正在等待其错误跟踪工具上的输入和此问题的示例。如果您有针对此问题的可重现步骤,请在以下网址分享:https://code.google.com/p/googleappengine/issues/detail?id=10937
我尝试使用Google App Engine后端从StackExchange API获取数据。您可能知道,StackExchange的某些API是特定于站点的,要求开发人员针对用户注册的每个站点运行查询。
所以,这是我的后端代码,用于从这些网站获取时间线数据。 feed_info_site
变量包含StackExchange站点名称(例如'security'
,'serverfault'
等)。
data = json.loads(urllib.urlopen("%sme/timeline?%s" %
(self.API_BASE_URL, urllib.urlencode({"pagesize": 100,
"fromdate": se_since_timestamp, "filter": "!9WWBR
(nmw", "site": feed_info_site, "access_token":
decrypt(self.API_ACCESS_TOKEN_SECRET, self.access_token), "key":
self.API_APP_KEY}))).read())
for item in data['items']:
... # code for parsing timeline items
在除Stack Overflow之外的所有站点上运行此查询时,一切正常。有什么奇怪的,当feed_info_site
变量设置为'stackoverflow'
时,我从Google App Engine收到以下错误:
HTTPException: Invalid and/or missing SSL certificate for URL:
https://api.stackexchange.com/2.2/me/timeline?
filter=%219WWBR%28nmw&access_token=
<ACCESS_TOKEN_REMOVED>&fromdate=1&pagesize=100&key=
<API_KEY_REMOVED>&site=stackoverflow
当然,如果我在Safari中运行相同的查询,我会得到我期望从API获得的JSON结果。所以问题实际上在于谷歌的URLfetch服务。我在Stack Overflow上发现了几个与类似的HTTPS / SSL异常相关的主题,但没有接受的答案解决了我的问题。我尝试删除cacerts.txt
个文件。我也尝试用validate_certificate=False
拨打电话,但没有成功。
我认为问题与HTTPS / SSL并不严格相关。如果是这样,您如何解释更改单个API参数会使请求失败?
答案 0 :(得分:1)
答案 1 :(得分:0)
我遇到了同样的错误,谷歌现在更新了应用引擎,错误已解决,请查看更新后的文档。