【问题标题】:Pubsubhubbub subscriber problemPubsubhubbub 订阅者问题
【发布时间】:2011-03-02 19:51:25
【问题描述】:

Pubsubhubbub hub.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"]);

}

我的错误在哪里?

【问题讨论】:

    标签: websub


    【解决方案1】:

    来自the spec

    订阅者必须确认 hub.topic 和 hub.verify_token 对应于它希望执行的待处理订阅或取消订阅。如果是这样,订阅者必须使用 HTTP 成功 (2xx) 代码进行响应,响应正文等于 hub.challenge 参数。

    您可能需要明确指定 2xx 标头。这是我使用的工作代码:

    if (isset($_GET['hub_challenge'])) {
        header('HTTP/1.1 204 "No Content"', true, 204);
        echo $_GET['hub_challenge'];
        exit;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-13
      • 1970-01-01
      • 1970-01-01
      • 2011-03-13
      • 1970-01-01
      相关资源
      最近更新 更多