使用Google App Engine时无效和/或缺lessSSL证书

更新 :请任何人都可以提供帮助:Google正在等待他们的错误跟踪工具的input和这个问题的例子。 如果您对此问题有可重复的步骤,请分享: https : //code.google.com/p/googleappengine/issues/detail?id = 10937

我试图使用Google App Engine后端从StackExchange API中获取数据。 您可能知道,一些StackExchange的API是特定于站点的,要求开发人员针对用户注册的每个站点运行查询。

所以,这里是我的后端代码从这些网站获取时间线数据。 feed_info_sitevariables包含feed_info_site站点名称(例如'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 

在堆栈溢出之外的所有站点上运行此查询时,一切正常。 奇怪的是,当feed_info_sitevariables设置为'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结果。 所以这个问题真的在于Google的URLfetch服务。 我在这里find了几个有关类似HTTPS / SSLexception的堆栈溢出的主题,但是没有被接受的答案解决了我的问题。 我试图删除cacerts.txt文件。 我也尝试使用validate_certificate=False进行调用,但没有成功。

我认为这个问题与HTTPS / SSL没有严格的关系。 如果是这样,那么如何解释更改单个API参数会导致请求失败?

  1. 等待应用引擎的下一次更新(即将发布)然后更新。
  2. 用另一个服务replacebrowserid.org/verify(verifier.loogin.persona.org/verify是一个由Mozilla托pipe的好服务,可以使用什么)
  3. 确保cacerts.txt不存在(看起来像你已经sorting,但只是在案例:-))
  4. 尝试再次祝你好运! -Brendan

我正面临同样的错误,谷歌已经更新了现在的应用程序引擎,错误解决,请检查更新的文档。