我使用下面的代码并从个人xively网站的设置中输入正确的主Api密钥,但结果是“SSL:CERTIFICATE_VERIFY_FAILED”证书验证失败(_ssl.c:645)“。不知道为什么会这样。
从导入本地时间,strftime
导入时间
导入请求
导入随机
请求的基本URL
url ='https://api.xively.com'
替换为您的主API密钥和设备的Feed ID
MASTER_API_KEY ='***********'
feed_ID_1 ='******'
feed_ID_2 ='******'
feed_ID_3 ='******'
使用请求库
更新设备的所有通道的功能:param feed_id:设备的Feed ID
:参数温度:要更新到通道的温度值
:param湿度:要更新到通道的湿度值
:param lux:要更新为通道的lux值
def update_channels(feed_id,温度,湿度,光照):
url_feed = url +'/ v2 / feeds /'+ str(feed_id)+'。json'headers = {'X-ApiKey': STR(MASTER_API_KEY)}
payload ='{\ “版本”:“1.0.0”,\ “datastreams”:[{\ “id”:“湿度”, “current_value”:'+ str(湿度)+'\ },\ {\ “id”:“光”, “current_value”:'+ str(light)+'\ },\ {\ “id”:“温度”, “current_value”:'+ str(温度)+'\ } \ ] \}'\
尝试: r = requests.put(url = url_feed,headers = headers,data = payload) print(strftime(“%a,%d%b%Y%H:%M:%S”,localtime())) 印刷品(有效载荷)
print(r.text)
print(r.status_code)
除例外为e:
打印(e)中循环,用于更新具有给定范围的随机值的3个设备
正确:
update_channels(feed_ID_1,random.uniform(20.0,22.0),random.uniform(50.0,51.0),random.uniform(320.0,325.0)) update_channels(feed_ID_2,random.uniform(22.0,24.0),random.uniform(51.0,52.0),random.uniform(325.0,330.0)) update_channels(feed_ID_3,random.uniform(24.0,26.0),random.uniform(52.0,53.0),random.uniform(330.0,335.0)) time.sleep(1)