Python, как вызвать API - PullRequest
       12

Python, как вызвать API

0 голосов
/ 06 апреля 2019

У меня есть API в функциях Google, в которых есть две функции, например:

и каждая функция работает правильно (добавляет и удаляет данные в БД), когда я загружаю их в веб-браузер. Проблема в том, что я не могу сделать это в скрипте Python на Raspberry Pi 3. Я хочу использовать эти URL-адреса при открытой и закрытой позиции переключателя.

Python-скрипт на RasPi

#buttoninput
import RPi.GPIO as GPIO
import sys
import requests

myid="dedektor001"

def button_callback(channel):
    sys.stdout.write('\033c')
    print('open')
    requests.get("https://xxx.cloudfunctions.net/iotUptext=myid,timeout=1")

def button_off(channel):
    sys.stdout.write('\033c')
    print('close');
    requests.get("https://xxx.cloudfunctions.net/iotDowntext=myid,timeout=1")


GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD);


buttonon = 10
buttonoff = 8

GPIO.setup(buttonon, GPIO.IN, pull_up_down=GPIO.PUD_DOWN);
GPIO.setup(buttonoff, GPIO.IN, pull_up_down=GPIO.PUD_DOWN);

print("ok");

GPIO.add_event_detect(buttonon,GPIO.RISING,callback=button_callback)
GPIO.add_event_detect(buttonoff, GPIO.RISING, callback=button_off);

message= input("enter to exit")        

GPIO.cleanup();

Этот код работает при первом включении переключателя, но он зависает. печатает «открыто», даже если я меняю положение свича.

1 Ответ

0 голосов
/ 07 апреля 2019

Повторяя то, что сказал @ Генри Вуди, ваши URL не выглядят так, как будто они правильно отформатированы.Вот что вы должны сделать, используя requests:

requests.get("https://xxx.cloudfunctions.net/iotUp", params={
    'text': myid,
    'timeout': 1,
})

Вы можете сделать нечто подобное для вашей функции iotDown.

...