ifttt“Maker”食谱:可选参数是空白的?

时间:2015-11-29 12:09:41

标签: python http ifttt

我正在使用以下Python脚本在'ifttt'上触发'Maker'事件,如下所示:

import requests
from main import get_ifttt

def trigger_event(  event, key, json_data={} ):
    ca_certs = "/etc/ssl/certs/ca-certificates.crt"  
    url="https://maker.ifttt.com/trigger/%s/with/key/%s"%(event, key)
    r=requests.post( url, data=json_data, verify=ca_certs )
    assert(r.status_code==200)

if __name__=='__main__':
    trigger_event( 'calendar', get_ifttt(), "{ 'Value1': 'something' }" )

ifttt Recipe创建了一个Google日历条目:使用以下文字:

{{OccurredAt}} "{{EventName}}" occurred on the Maker Channel : Value1: "{{Value1}}"

正确创建日历事件;但'Value1'字符串是空白的?所以条目看起来像这样:

"calendar" occurred on the Maker Channel : Value1: "

如果我也切换到“通知”事件,也会发生这种情况吗?

我还尝试使用'curl'命令行并附加'?Value = xxx';这也行不通。

我尝试过使用'Value1'和'value1':但结果相同。

我在这里做错了什么?

(代码调用一个名为'get_ifttt'的方法:这只是返回我的秘密API密钥。)

1 个答案:

答案 0 :(得分:4)

您可以通过指定Content-Type发送'value1'字符串。

r=requests.post( url, data=json_data, verify=ca_certs, headers={'Content-Type': 'application/json'} )

此外,您应该使用'value1'而不是'Value1'。

trigger_event( 'calendar', get_ifttt(), "{ 'value1': 'something' }" )