Ich bin neu in Python, und habe keinen Programmierhintergrund. Ich versuche mit meinem Raspberry Pi Daten an Google Analytics zu senden. Das Problem besteht darin, dass das Google Analytics Measurement Protocol HTTP S verwendet - mit dem mein Code nicht funktioniert.urllib2 zu öffnen HTTPS
So sieht mein aktueller Code wie diese
import urllib2
import time
import RPi.GPIO as io
io.setmode(io.BCM)
door_sensor = 18
sensorTrigger = True
io.setup(door_sensor, io.IN, pull_up_down=io.PUD_UP)
# function for the door opening
def door_open():
print("Door Open")
urllib2.urlopen("https://www.google-analytics.com/collect?v=1&tid=UA- 3458xxxx-1&cid=555&t=event&ec=doors&ea=open&el=office").close
# function for the door closing
def door_close():
print("Door Close")
while True:
if io.input(door_sensor): # if door is opened
if (sensorTrigger):
door_open() # fire GA code
sensorTrigger = False # make sure it doesn't fire again
if not io.input(door_sensor): # if door is closed
if not (sensorTrigger):
door_close() # fire GA code
sensorTrigger = True # make sure it doesn't fire again
und die Fehler, die ich erhalte ist ...
Traceback (most recent call last):
File "/home/pi/Desktop/GADoorSensor.py", line 23, in <module>
door_open() # fire GA code
File "/home/pi/Desktop/GADoorSensor.py", line 14, in door_open
urllib2.urlopen("https://www.google-analytics.com/collect?v=1&tid=UA-3458xxxx-1&cid=555&t=event&ec=doors&ea=open&el=office").close
File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 431, in open
response = self._open(req, data)
File "/usr/lib/python2.7/urllib2.py", line 449, in _open
'_open', req)
File "/usr/lib/python2.7/urllib2.py", line 409, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 1240, in https_open
context=self._context)
File "/usr/lib/python2.7/urllib2.py", line 1197, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)>
Ich folgte THIS Anleitung, ob das hilft.
Ich habe ein paar wenige Artikel online darüber gelesen, wie man das umgehen kann, aber weil ich neu bin, ist es alles andere als verwirrend.
Wenn mir jemand eine Hand geben könnte oder mir einen Anfängerleitfaden geben könnte, wäre ich sehr dankbar!
Haben Sie versucht, 'https: //' auf nur 'http: //' zu ändern. Es sollte Sie um diese Hürde von versuchen, eine verschlüsselte (ssl) Verbindung mit urllib2 zu erstellen. – Matt