UPDATE: Si quelqu'un peut vous aider, Google attend des informations et des exemples de ce problème sur son outil de suivi des bogues. Si vous disposez d'étapes reproductibles pour ce problème, partagez-les sur: https://code.google.com/p/googleappengine/issues/detail?id=10937
J'essaie d'extraire des données de l'API StackExchange en utilisant un moteur Google App Engine. Comme vous le savez peut-être, certaines API de StackExchange sont spécifiques à un site, obligeant les développeurs à exécuter des requêtes sur chaque site dans lequel l'utilisateur est enregistré.
Alors, voici mon code de base pour récupérer les données de chronologie de ces sites. La variable feed_info_site
contient le nom du site StackExchange (tel que 'security'
, 'serverfault'
, etc.).
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
Lors de l'exécution de cette requête sur tous les sites sauf Stack Overflow, tout fonctionne correctement. Ce qui est bizarre, c’est que, lorsque la variable feed_info_site
est définie sur 'stackoverflow'
, l’erreur suivante apparaît dans 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
Bien sûr, si j'exécute la même requête dans Safari, j'obtiens les résultats JSON que j'attends de l'API. Le problème réside donc vraiment dans le service URLfetch de Google. J'ai trouvé plusieurs sujets ici sur le dépassement de pile liés à des exceptions HTTPS/SSL similaires, mais aucune réponse acceptée n'a résolu mes problèmes. J'ai essayé de supprimer les fichiers cacerts.txt
. J'ai aussi essayé de passer l'appel avec validate_certificate=False
, sans succès.
Je pense que le problème n'est pas strictement lié à HTTPS/SSL. Si tel est le cas, comment expliqueriez-vous que la modification d'un seul paramètre d'API entraînerait l'échec de la demande?
Je faisais face à la même erreur, Google a mis à jour le moteur de l'application maintenant, erreur résolue, veuillez vérifier la documentation mise à jour.