ssig33.com

OpenFastladder クローラー向け RPC について

OpenFastladder にクローラー向け API が出来ました。

若干むちゃくちゃな仕様だが無理矢理通したというものです。

自分の好きな言語でクローラーを開発し、 Fastladder で使用することが出来ます。

使い方

  1. Fastladder をセットアップする
  2. ユーザーを作り、サインインする
  3. 右上のメニューにある Account っていうページにいって、左のメニューから API Key に行く
  4. Set or Change Auth Key っていうボタンクリックする
  5. Your API Auth Key is: *********************************** みたいになるのでそれ自分のクローラーにコピペ
  6. http://your\_fastladder/rpc/update\_feed に向けて以下の内容を POST する
    • feedlink: フィードの URL
    • link: 記事の URL
    • body: 記事の内容
    • category: 記事のカテゴリ
    • published_date: 記事の発行日
    • api_key: 先程の API Key

以上です。

という感じで POST しても大丈夫です。

複数の記事を一括で更新したい場合は

/rpc/update_feeds という API に対して

みたいな感じで POST してください。 feeds は JSON 。

重複を Fastladder とクローラーで連携して確認し、無駄なものを POST しないようにするということも出来ます。 check_digest というのがそれです。その辺説明めんどくさいのでソース自分で読んで考えてください。

一歩進んだ使い方

上記の方法では、実はフィードしか送りつけることが出来ません。ですがこういう仕組みが用意されている以上、フィードでないものも Fastladder に送りつけて購読することはまさに醍醐味と言えるでしょう。以下のようにすることでフィードでないものも購読出来ます。

上記で POST しているパラメーターに更に以下を加える

JSON の場合も複数登録の場合も同様です。 feedtitle は必須ですが feeddescripiton は必須ではありません。

フィードではないものを Fastladder で購読する実例を以下に示します。

require 'user-stream-receiver'                                                                                                                                                     
require 'json'                                                                                                                                                                     
require 'rest_client'                                                                                                                                                              

HOST = ''
API_KEY = ''

UserStreamReceiver.new.run{|chunk|                                                                                                                                                 
  begin                                                                                                                                                                            
    chunk = JSON.parse(chunk)                                                                                                                                                      
    next unless chunk['text']                                                                                                                                                      
    hash = {                                                                                                                                                                       
      feedlink: "https://twitter.com/#{chunk['user']['screen_name']}",                                                                                                             
      feedtitle: "Twitter #{chunk['user']['screen_name']}",                                                                                                                        
      link: "https://twitter.com/#{chunk['user']['screen_name']}/status/#{chunk['id']}",                                                                                           
      title: "Twitter #{chunk['user']['screen_name']}",                                                                                                                            
      body: chunk['text'],                                                                                                                                                         
      author: chunk['user']['screen_name'],                                                                                                                                        
      category: 'Twitter',                                                                                                                                                         
      published_date: chunk['created_at']                                                                                                                                          
    }                                                                                                                                                                         
    RestClient.post "http://#{HOST}/rpc/update_feed", json: hash.to_json, api_key: API_KEY                                                       
  rescue                                                                                                                                                                           
    p 'error'                                                                                                                                                                      
  end                                                                                                                                                                              
}

これは Twitter の UserStreams を読み込んでガンガン Fastladder に送りつけていくというものです。全く便利ではありません。

結構便利に遊べる API なのではないかと思います。どうぞ、ご利用ください。

back to index of texts


Site Search

Update History of this content