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 レシピは、次のテキストを使用して Google カレンダー エントリを作成します。

{{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 に答える