2016-08-24 11 views
0

PHPでPubSubHubbubを使用してSuperfeedr APIを統合したいと思います。私は、thisを、次の午前と私のコードは次のとおりです。Superfeedrで購読するPubSubHubbubエラーhub.topicが見つかりません

<?php 

require_once('Superfeedr.class.php') 
$superfeedr = new Superfeedr('http://push-pub.appspot.com/feed', 
          'http://mycallback.tld/push?feed=http%3A%2F%2Fpush-pub.appspot.com%2Ffeed', 
          'http://wallabee.superfeedr.com'); 

$superfeedr->verbose = true; 
$superfeedr->subscribe(); 
?> 

そして、私の購読()関数は

public function subscribe() 
{ 
    $this->request('subscribe'); 
} 

private function request($mode) 
{ 
    $data = array(); 
    $data['topic'] = $this->topic; 
    $data['callback'] = $this->callback; 

    $post_data = array ( 
      "hub.mode" => 'subscribe', 
      "hub.verify" => "sync", 
      "hub.callback" => urlencode($this->callback), 
      "hub.topic" => urlencode($this->topic), 
      "hub.verify_token" => "26550615cbbed86df28847cec06d3769", 
    ); 
//echo "<pre>"; print_r($post_data); exit; 

    // url-ify the data for the POST 
    foreach ($post_data as $key=>$value) { 
     $post_data_string .= $key.'='. $value.'&'; 
    } 
    rtrim($fields_string,'&'); 

    // curl request 
    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_URL, $this->hub); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data_string); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_HEADER, true); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json')); 
    curl_setopt($ch, CURLOPT_USERPWD, 'USERNAME:PASSWORD'); 
    $output = curl_exec($ch); 


    if ($this->verbose) { 
     print('<pre>'); 
     print_r($output); 
     print('</pre>'); 
    } 
} 

ですが、実行した後、私はこのエラー

HTTP/1.1 422 Unprocessable Entity 
X-Powered-By: The force, Luke 
Vary: X-HTTP-Method-Override, Accept-Encoding 
Content-Type: text/plain; charset=utf-8 
X-Superfeedr-Host: supernoder16.superfeedr.com 
Access-Control-Allow-Origin: * 
Access-Control-Allow-Credentials: true 
Access-Control-Allow-Methods: GET, POST, PUT, DELETE 
Access-Control-Allow-Headers: Authorization 
Content-Length: 97 
ETag: W/"61-db6269b5" 
Date: Wed, 24 Aug 2016 14:01:47 GMT 
Connection: close 

Please provide a valid hub.topic (feed) URL that is accepted on this hub. The hub does not match. 

同じデータ(トピックを取得していますし、コールバックなど)はhttps://superfeedr.com/users/testdata/push_console から正常に機能しています。しかし、なぜ私は私の地元でこのエラーが発生しているのかわかりません。誰もが同じproblomで経験している場合は、私を助けてください。ありがとう。

答えて

0

奇妙なハブURLを使用しています。あなたのクラスコンストラクタの最後のparamにHTTPS://push.superfeedr.comを使うべきです。

+0

こんにちはジュリアン、お返事ありがとうございます。私はあなたがアドバイスした通りにURLを変更します。しかし今、私はHTTP/1.1 401 Unauthorized Unauthorizedを取得しています。サブスクリプションの前に認証する必要がありますか?私はHTTP認証のためにhttps://documentation.superfeedr.com/subscribers.html#removingfeedswithpubsubhubbubに従っています。私はトークンを生成し、 "hub.verify_token = 26550615cbbed86df28847cec06d3769"のように私のコードに入れました。私は認証のために何か別のことをするべきですか? – nitin7805

+0

実際に認証の問題があったのは です。curl_setopt($ ch、CURLOPT_USERPWD、 'USERNAME:PASSWORD'); ここでは、https://superfeedr.comアカウントの実際のユーザー名とパスワードを設定する必要があります。もう一度@Julienありがとう。 – nitin7805

関連する問題