TwitterやInstagram等のフィードを配信していないサービスのフィードを取得する方法

Feed, PHP, Web

TwitterやInstagram等のWebサービスをフィードを通して購読したい場合、自前でフィードを用意する必要があります。いくつかの方法がありますが、外部サービスを利用するのが一番手っ取り早いです。

参考: TwitRSS.me Queryfeed Publicate FetchRSS

これらは購読したい対象のユーザーネームを入力するだけでいいので手軽である一方、サービスが不安定であったり、時間あたりの取得制限などのデメリットもあります。フィードを取得した上で何かしたい場合は自分のサーバーでやりくりするのが結局は楽で、わざわざ自分で書かなくてもGitHubに良いものが転がっています。

RSS-Bridge

RSS-Bridgeは各種WebサービスをAtom / Html / Json / Mrss / Plaintextで返してくれるPHPで記述されたアプリケーションです。

Facebook / Flickr / Google+ / GoogleSearch / Instagram / Pinterest / Twitter / Wikipediaなどの多くのサービスに対応しています。

要件
PHP >= 5.6
openssl
curl

使い方

TwitterのあるユーザーのつぶやきをAtomで取得する場合です。

  1. GitHubから一式ダウンロードします。
  2. 解凍すると「rss-bridge-master」というフォルダが解凍されます。これをフォルダごとサーバーにアップロードします。
  3. //設置場所/rss-bridge-master/にアクセスした後、「Search」に “Twitter” と入力すると「Twitter Bridge」が現れるので、「Show more」をクリックします。
  4. 中段の「By username」に取得したいのユーザーネームを入力した上で、「Atom」をクリックします。
    ※「Without replies」でリプライが、「Without retweets」でリツイートが除外されます。
  5. フィードがAtomフォーマットで返ってきます。content要素にはつぶやきと添付された画像のサムネイルが、enclosure要素にはオリジナルの画像が含まれています。
    サムネイル:https://pbs.twimg.com/media/DlUgkY_U8AEkQSQ.jpg:thumb
    オリジナル:https://pbs.twimg.com/media/DlUgkY_U8AEkQSQ.jpg:orig

おまけ

Rant

Dear so-called “social” websites.

Your catchword is “share”, but you don’t want us to share. You want to keep us within your walled gardens. That’s why you’ve been removing RSS links from webpages, hiding them deep on your website, or removed feeds entirely, replacing it with crippled or demented proprietary API. F*CK YOU.

訳:
親愛なる”ソーシャル”ウェブサイト様方へ

あなた方のキャッチフレーズは”シェア”ですが、シェアなんてしてほしくないですよね?あなた方は自分のサイトに人を閉じ込めたいだけ。だからウェブページにRSSリンクを記載せず、隠したり、そもそも配信していなかったり、代わりに使いにくい馬鹿げた独自APIを提供している。
ファ○クユー。

引用:https://github.com/RSS-Bridge/rss-bridge#rant

Feed, PHP, Web

Posted by aggreg