3
私はPythonを初めて使用しており、コード化の背景が全くありません。 ラズベリーパイを使用してGoogleアナリティクスにデータを送信しようとしています。問題は、Google Analytics測定プロトコルがHTTP Sを使用していることです - どのコードが動作しません。urllib2でHTTPSを開く
だから私の現在のコードは、この
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
のように見えると私は入れませんエラーはそれが助け場合、私はTHISガイドを追った...
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)>
です。
私はこれを回避する方法についてオンラインではるかに少ない記事を読んでいますが、私はこのすべてに慣れていないので混乱していません。
誰かが私に手を差し伸べることができ、これをどうやって作業するかについての初心者ガイドに向けると、私は非常に感謝しています!
私はhttp.clientとのより良い運を持っていた
'https://'を' http:// 'に変更しようとしましたか? urllib2との暗号化された(ssl)接続を作成しようとするこの障害を回避する必要があります。 – Matt