ifttt-webhook 改良
captn3m0/ifttt-webhook · GitHub
IFTTT の Web フックが欲しくて上記の WordPress にペルソナ(w)する WebHook コードを Heroku で動かしていますが、以下の不満が発生。
・Body にフック先 URL しか指定できない
・タグが無視される
ということで、上記を解消したコードを載せておきます。
xmlrpc.php
32行目付近の switch の中身を以下のように変更します。
switch((string)$data->name) { //neglect these sections of the request case 'post_status' ://publish status break; case 'mt_keywords': //tags $tags=array(); foreach($data->xpath('value/array/data/value/string') as $cat) array_push($tags,(string)$cat); $obj->tags = $tags; break; //the passed categories are parsed into an array case 'categories': $categories=array(); foreach($data->xpath('value/array/data/value/string') as $cat) array_push($categories,(string)$cat); $obj->categories = $categories; break; case 'description': // $url = (string)$data->value->string; $description = str_replace("<br>", "\n", (string)$data->value->string); $description_array = explode("\n", $description); $url = $description_array[0]; array_shift($description_array); $obj->description = trim(implode("\n", $description_array), "\n"); break; //this is used for title default: $obj->{$data->name} = (string)$data->value->string; }
タグが tags パラメータとして渡されるようになります。
また、Body の一行目がフック先の URL となり、二行目以降を description パラメータとして受け取ることができるようになります。