2

Pubsubhubbubhub.verifyは同期です。しかし、「サブスクリプションの確認中にエラーが発生しました」と表示されます。これが私のサブスクライブコードです:

<?php
if(isset($_GET["hub_challenge"])) {
exit($_GET["hub_challenge"]);;

}

$feeded = $_POST['feed']; 
$ch = curl_init("http://pubsubhubbub.appspot.com");
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch,CURLOPT_POSTFIELDS,"hub.mode=subscribe&hub.verify=sync&hub.callback=http://rssreaderbg.net/pubsubbub/example/cssexam/index1.php?url=$feeded&hub.topic=$feeded");
curl_exec($ch);
$conn = mysql_connect("localhost","rssreade_rss","siatsowi");
mysql_select_db("rssreade_rss");
?>

と私のコールバックコード:

if(isset($_GET["hub_challenge"])) {
    file_put_contents("logmeme1.txt",$HTTP_RAW_POST_DATA,FILE_APPEND);
exit($_GET["hub_challenge"]);

}

私のエラーはどこにありますか?

4

1 に答える 1

2

仕様から:

サブスクライバーは、hub.topic と hub.verify_token が、実行したい保留中のサブスクリプションまたはサブスクリプション解除に対応していることを確認する必要があります。その場合、サブスクライバーは、hub.challenge パラメーターと等しい応答本文を含む HTTP 成功 (2xx) コードで応答する必要があります。

2xx ヘッダーを明示的に指定する必要がある場合があります。これは私が使用する作業コードです:

if (isset($_GET['hub_challenge'])) {
    header('HTTP/1.1 204 "No Content"', true, 204);
    echo $_GET['hub_challenge'];
    exit;
}
于 2011-07-29T21:53:02.210 に答える