WebHookにてpublish_postフックが動作しない

  • 不明 のアバター

    wordpress.comの自分のサイトで、WebHookのpublish_postフックを使って、外部のWordPressサイトのURLを指定して投稿公開時の投稿連携を試してみたところ、外部サイトのスクリプトでpublish_postフックのHTTP POSTリクエストが取得できませんでした。comment_postフックについては正常にリクエストが拾えます。また、publish_postフックを設定した状態で、WordPress.com上から新規投稿を行うと、jetpack errorが発生します。

    ヘルプが必要なブログは (ログイン中のユーザーにのみ表示) です。

  • 不明 のアバター

    ご利用ありがとうございます。

    外部のWordPressサイトのURLを指定して投稿公開時の投稿連携を試してみたところ、外部サイトのスクリプトでpublish_postフックのHTTP POSTリクエストが取得できませんでした

    こちらですが、外部サイトのスクリプトについてもう少し具体的にご説明いただくことは可能でしょうか。
    当方でこの現象を再現しようとする場合、どのような手順が必要でしょうか。

    publish_postフックを設定した状態で、WordPress.com上から新規投稿を行うと、jetpack errorが発生

    お手数ですが、こちらについてエラーメッセージの詳細をお知らせいただけますでしょうか。全文をコピーしてご返信いただければと思います。

    よろしくお願いいたします。

  • 不明 のアバター

    ご返信、ありがとうございます。

    こちらですが、外部サイトのスクリプトについてもう少し具体的にご説明いただくことは可能でしょうか。

    はい、外部サイトの方もWordPressで作成されたサイトでして、WordPress.com側のWebHookではそのサイトの固定ページのパーマリンクを指定してあります。WebHookのHTTP POSTリクエストの受け先となる外部WordPressサイトの固定ページには独自のカスタムテンプレートを適応してあり、そのカスタムテンプレートでは下記のような処理を記述しています。

    <?php
    /*
    Template Name: Get Data API
    */
    $ua = $_SERVER['HTTP_USER_AGENT'];
    $referer = $_SERVER['HTTP_REFERER'];
    $allow_host_name = 'ka2bowy.wordpress.com';
    if (preg_match('/^http(s)://'.$allow_host_name.'(/)*$/iU', $referer)) {
    	if (preg_match('/^HookPress/.*$/U', $ua)) {
    		$post_vals = '';
    		foreach ($_POST as $p => $v) {
    			$post_vals .= '$_POST["'. $p .'"]="'. $v .'";' . "n";
    			${$p} = $v;
    		}
    		error_log($post_vals, 3, ABSPATH.'/api.log');
    		exit;
    	}
    }

    今はまだ試験段階のため、受け取ったHTTP POSTリクエストの内容をログに出力するだけですが、将来的にはWordPress.comへ投稿されたコンテンツを外部サイト側でも取得して再利用するようなことを考えていました。

    上記で出力されるログを確認したところ、comment_postフックとpublish_pageフックによるHTTP POSTリクエストは受け取れてログが出力されたのですが、publish_postフックのみリクエストが受け取れずにログが出力されませんでした。

    こちらについてエラーメッセージの詳細をお知らせいただけますでしょうか。

    こちら、 http://wordpress.com/my-blogs/ からka2bowy.wordpress.comのブログへ新規投稿(「公開」ボタン押下)した際に、完了メッセージ「投稿を作成しました」の後に「jetpack error」と表示されてたのですが、先ほど試したところ、新規投稿画面が前回試した時より大幅にリニューアルされてしまったこともあってエラーが表示されなくなってしまい、再現しませんでした。

    以上、よろしくお願いいたします。

  • トピック「WebHookにてpublish_postフックが動作しない」には新しい返信をつけることはできません。