1

kohana プロジェクトで PubSubHubBub を実装していました。これは私の購読コードです:

   public function action_curl_home()
   {
    $secret = hash('sha1', uniqid(rand(), true));
      $post_fields = array("hub.callback" => "my callback function",
        "hub.mode" => "subscribe",
        "hub.topic" => "http://feeds.feedburner.com/NdtvNews-TopStories",
        "hub.verify" => "async",
        "hub.lease_seconds" => "42800",
        "hub.secret" => $secret
    );

    $curl = curl_init("http://pubsubhubbub.appspot.com/");
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $post_fields);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_VERBOSE, 1);
    curl_exec($curl);
    $code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
    print_r($code);
    if (in_array($code, array(202, 204))) {
        print_r("Positive response - request ($code). - secret: $secret");
    }
    else {
        print_r("Error issuing - request - ($code).");
    }
    curl_close($curl);
    exit;
}

コールバック関数は次のとおりです。

    if (isset($_GET['hub_challenge'])) {
        print $_GET['hub_challenge'];
        file_put_contents($_SERVER['DOCUMENT_ROOT'] . "application/classes/controller/curl.txt", implode(" , ", $_GET));
        exit;
    }
    else {
        $xml=file_get_contents("php://input");
        file_put_contents($_SERVER['DOCUMENT_ROOT'] . "application/classes/controller/curl.txt", date('d-m-y h:i:s a') . $xml, FILE_APPEND);
        exit;
    }

action_url_home() 関数を呼び出すと、コールバック関数が正常に呼び出されます。そこから、検証の仕方がわかりません。ここから誰か助けてください

4

1 に答える 1

3

hub.callbackパラメータに関しては誤解があると思います。これは関数ではなく、むしろwebhookである必要があります。これは、サブスクリプション リクエストを発行したときに (あなたではなく) ハブによって呼び出される URL です。

詳細については、この記事を確認してください。

于 2015-07-15T11:25:08.840 に答える