2017-01-20 6 views
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とのより良い運を持っていた
+0

'https://'を' http:// 'に変更しようとしましたか? urllib2との暗号化された(ssl)接続を作成しようとするこの障害を回避する必要があります。 – Matt

答えて

0

、thusly ...

import http.client 

myDestination = "https://www.google-analytics.com/collect?v=1&tid=UA- 3458xxxx-1&cid=555&t=event&ec=doors&ea=open&el=office" 

conn = http.client.HTTPSConnection(myDestination) 

そして、忘れてはいけない...

conn.request() 

conn.response() 

を使用...

conn.close() 
関連する問題