Найти - Пользователи
Полная версия: вопрос по использованию IFTTТ
Начало » Python для новичков » вопрос по использованию IFTTТ
1 2
ivin
Приветствую всех.
Прошу помощи с вопросом по обратной связи через сервис IFTTT.
Т.е. код отправляет устройству команду через ifttt, устройство сработало, но код понятия не имеет сработало или нет. Как реализуется запрос состояния устройства и возможно вообще это? Конкретное устройство имеется в ifttt. Желательно конечно еще перед отправкой команды получить статус для определения какую команду дать.
Пока ни где не могу найти рабочих примеров или описания..
py.user.next
Сервис IFTTT? If This Then That
ivin
py.user.next
Сервис IFTTT? If This Then That
мой вопрос был к знающим работу сервиса IFTTT, я только начал его тыкать…
https://ifttt.com/
py.user.next
ivin
сервиса IFTT
Там три буквы T.

Выложи код на питоне сюда.
ivin
ну да, одна потерялась
код который есть ни чего тебе не даст, вопрос вроде описан в первом посте.
в ifttt можно создать IF “если устройство вкл\выкл”, что сделать в Then That для получения кодом (работает локально) сообщения о статусе? и как должен выглядеть код. впрочем я вроде уже почти решил проблему
py.user.next
ivin
ну да, одна потерялась
В компьютерном мире нужно всё точно писать, потому что вполне могут быть две разные технологии, различающиеся в одной букве, цифре или значке.

Например, часто путают http и https, или nntp и ntp, или MIT и MTI, или Linux и GNU/Linux. Это всё вещи разные по отношению друг к другу. Одну букву забыл или переставил и весь смысл изменился. Потом полдня идёт обсуждение какой-то темы, а через полдня все узнают, что автор про другое спрашивал.

ivin
код который есть ни чего тебе не даст
Зря ты так думаешь. Я могу навскидку вспомнить десяток случаев, когда человек обращался с проблемой в каком-то сервисе, а потом выкладывал код и тот был неправильно написан не в плане сервиса, а в плане питона или его пакетов. Поэтому, даже не зная сервиса, его код поправлялся в синтаксисе питона и благодаря этому начинал правильно работать.

То есть код ты должен выложить первым делом, чтобы мы убедились, что ты правильно его написал и в нём нет простейших синтаксических ошибок и простейших логических ошибок.

Для этого не нужно знать IFTTT вообще.
ivin
да правильно все излагаешь. вот только чего выкладывать?
я писал, что код на отправку сообщения в ifttt работает, там всего одна строка:
requests.post('https://maker.ifttt.com/trigger/' + event + ‘/with/key/’ + iftt_key,
params={“value1”:“none”,“value2”:“none”,“value3”:“none”})
с этим проблем нет.
повторяю вопрос-как в питон принять сообщение от ifttt?
кода на прием нет.
py.user.next
ivin
повторяю вопрос-как в питон принять сообщение от ifttt?
Ты должен настроить сначала IFTTT, чтобы там была команда status. Потом в IFTTT посылаешь запрос из своего скрипта, обращаясь к этой команде status, и она тебе отвечает ответ в виде JSON-данных.

Также IFTTT можно настроить на инициацию соединений наружу. При срабатывании триггера внутри IFTTT оно может подключаться к твоему сервису на хостинге и оставлять там записи. То есть совсем не обязательно принимать ответ прямо у себя в скрипте; можно ходить за этими данными на свой сервис, не зависящий от IFTTT.

https://platform.ifttt.com/docs/api_reference#service-status

Разберись со своим устройством. У IFTTT никаких проблем с обратной связью нет (вся документация по API в IFTTT испещрена ответами с обратной связью).
ivin
спасибо, кажется мы начинаем друг друга понимать
“Потом в IFTTT посылаешь запрос из своего скрипта, обращаясь к этой команде status, и она тебе отвечает ответ в виде JSON-данных. ”-
вот именно это меня и интересует. есть рабочий пример?
“ можно ходить за этими данными на свой сервис, не зависящий от IFTTT.”-
не хотелось бы делать еще один костыль, если есть варианты прямого приема сообщения, лучше обойтись без этого.
“вся документация по API в IFTTT испещрена ответами с обратной связью”-
если не трудно, ткни пальцем, я так-то не программист совсем, два года назад начал писать на питоне, в очень многое не врубаюсь
py.user.next
ivin
py.user.next
вся документация по API в IFTTT испещрена ответами с обратной связью
если не трудно, ткни пальцем

Вот твой код
ivin
  
requests.post('https://maker.ifttt.com/trigger/' + event + '/with/key/' + iftt_key,
params={'value1': 'none', 'value2': 'none', 'value3': 'none'})

Там надо ответ прочитать на этот запрос. В нём код завершения и JSON-данные.

ivin
я так-то не программист совсем
А о HTTP у тебя какие знания? Ты знаешь, что протокол HTTP подразумевает не только запросы, но и ответы?

Запрос - это Request.
Ответ - это Response.

И вот там в документации везде, где видишь Response, там и находится обратная связь от сервиса.


Пример
https://platform.ifttt.com/docs/api_reference#queries

Посылается запрос узлу api.example-service.com на концевую точку /ifttt/v1/queries/list_album_photos

Это значит, что ты подключаешься туда и сразу посылаешь запрос
POST /ifttt/v1/queries/list_album_photos HTTP/1.1
...
{
"queryFields": {
"album_name": "Street Art"
}
}

Узел что-то делает в соответствии с этой концевой точкой и командами из тела запроса и присылает тебе сразу ответ
Status 200
В теле ответа данные в формате JSON с информацией, которую ты запрашивал в запросе
{
"data": [
{
"slug 1": "value for row 1 ingredient 1",
"slug 2": "value for row 1 ingredient 2",
...
"slug n": "value for row 1 ingredient n"
}
]
}

Ты понимаешь эту систему?

Так вот, если ты не понимаешь, как это всё происходит, то тебе сначала надо ознакомиться с HTTP-протоколом, чтобы понимать где там что. И только когда ты будешь понимать, что ты делаешь, тогда тебе и нужно будет создавать свою концевую точку, при запросах на которую сервис IFTTT будет отправлять запросы твоему устройству. При этом устройство тоже должно отвечать сервису IFTTT на его запросы, чтобы сервис IFTTT мог эти ответы передавать через концевую точку запрашивающему клиенту (твоему скрипту то есть).

Так что не ищи рабочие примеры, ты их просто не поймёшь и не сможешь переделать для своего случая. Тебе нужно подтянуть знания по HTTP, чтобы просто понимать, что происходит в конкретном примере рабочем или в примере из документации по API сервиса IFTTT, где всё как на ладони.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB