0

我正在使用以下 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 食谱创建一个谷歌日历条目:使用如下文本:

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

日历事件已正确创建;但“Value1”字符串为空?所以条目看起来像这样:

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

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

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

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

我在这里做错了什么?

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

4

1 回答 1

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' }" )
于 2015-12-15T23:15:44.283 回答