• 締切済み

facebookのフィードを取得

rubyでfacebookのとあるユーザのフィードを取得したいのですが、titleの文字コードがおかしくなってしまいます。 例えば無印のフィードは以下のURLで取得できますが https://www.facebook.com/feeds/page.php?format=rss20&id=106191702776460 実際にruby(railsのコンソール)で取得するとtitleだけ以下のようになってしまいます。 日本語に直すにはどうしたらいいのでしょうか? url = "https://www.facebook.com/feeds/page.php?format=rss20&id=106191702776460" rss = open(url){ |file| RSS::Parser.parse(file.read) } rss.items.first.title => " 都会のど真ん中にある鎮守の森、明治神宮。\nこの豊かな森が、実は天然林ではないと言うと、驚かれるでしょうか。\n今から90年ちょっと前に人の手で植えた木々が育ってで..."

  • Ruby
  • 回答数1
  • ありがとう数0

みんなの回答

回答No.1

ぱっと見た感じの感想ですいませんが、文字コードがわからない状態なのでそうなっている用に見えます rss.items.first.title.encode("UTF-8").force_encoding("UTF-8") でいけるのではないでしょうか?

関連するQ&A

  • SeesaaブログのRSS取得で、ブログの本文も取得したいのですが・・・。

    RSS取得を使用し、更新情報を載せるまでは出来ました。 タイトルだけではなく、本文も掲載したいです。 Seesaaでは可能でしょうか? RSS用の特殊タグが必要かと思うのですが、タグがわかりません。 一応実験的に試してみたタグが、 「rss_feeds.description」だったのですが、出来ませんでした。 RSS取得のhtmlは <div class="sidetitle"><% content.title %></div> <div class="side"> <% content.header -%> <% loop:list_rss -%> <a href="<% rss_feeds.page_url %>" target="_blank"><% rss_feeds.name %></a><br /> <% /loop -%> <% content.footer -%> </div>

  • facebook ニュースフィードの反映

    facebookを使っていて気になる点があります。 例えば、 友達AさんとBさんがいます。 Aさんが誰か(※私の友達ではない)の写真にコメントやいいね!をすると 私のニュースフィードにそれが載ってきます。 しかし同じことをBさんがしても、 私のニュースフィードには載ってきません。 AさんもBさんも「友達」で「フィード購入済み (ほとんどのアップデート)」と全く同じ条件です。 この違いはどこから来ているのでしょうか? プライバシー設定などで、 他人のニュースフィードに反映させないなど制御できるのでしょうか? アドバイスよろしくお願い致します。

  • gooのフィードを作成したのですが使い方が分かりません

    質問お願いします。 タイトルのようにRSSフィードを作成したのですが、使い方が良くわかりません。 自分で作成したホームページの(ブログではなく)更新情報を色々と配信したいと思っているのですがまず、そのフィードのURLというのが見つかりません。 管理ページのドコに記載されているのでしょうか? また、更新情報を配信するのはURLさえ分かれば良いのでしょうか? どうもRSSに対する知識が少なくて理解が出来ません。 基本的な事なのですがご教授下さい。よろしくお願いします。

  • フィードの取得&表示方法について

    http://neta-times.net/entries/953/ 現在HPを開設しているのですが、そこで上記のサイトを参考にして書きのようにコードを記述してRSSフィードを取得&表示しています。 <script type="text/javascript"> <!--// google.load("feeds", "1"); var entryArray = new Array(); var entryNum = 0; function initialize() { feedAdd("RSSフィードURL", 1); } function feedAdd(rssUrl, boolNum) { var feed = new google.feeds.Feed(rssUrl); feed.setNumEntries(5);//サイト1つあたりの取得するフィード数 feed.load(function(result) { if (!result.error) { for (var i = 0; i < result.feed.entries.length; i++) { entryArray[entryNum] = result.feed.entries[i]; var date = new Date(result.feed.entries[i].publishedDate); entryArray[entryNum].sortDate = ( date.getFullYear()*1000000 ) + ( (date.getMonth() + 1)*3600*32 ) + ( date.getDate()*3600 ) + ( date.getHours()*60 ) + date.getMinutes(); entryArray[entryNum].blogName = result.feed.title; entryNum+=1; } } if(boolNum==1){ feedOutput("feed", 100);//フィードの出力 } }); } function feedOutput(feedId, listNum){ var useFeed = ""; var useDate = ""; var container = document.getElementById(feedId); var refDate = new Date(); refDate = new Date(+refDate - (7*24*60*60*1000 + refDate%86400000 - refDate.getTimezoneOffset()*60000)); var newImage = '<img src="./img/new.gif" alt="new">'; entryArray = asort(entryArray, "sortDate"); if(listNum==100){//出力するリスト数 listNum = entryNum; } for (var i = 0; i < listNum; i++) { var entry = entryArray[i]; var date = new Date(entry.publishedDate); var y = date.getFullYear(); if (y < 10) {y = "0" + y;} var m = date.getMonth() + 1; if (m < 10) {m = "0" + m;} var d = date.getDate(); if (d < 10) {d = "0" + d;} useDate = y + "年" + m + "月" + d + "日"; youbi = date.getDay(); day = new Array("日","月","火","水","木","金","土"); useFeed += '<div style="float:left;width:115px;">'; useFeed += (date>refDate)?newImage:""; //←new画像の表示を追加 useFeed += "&nbsp;"+ y + "/" + m + "/" + d + "(" + day[youbi] + ")"; useFeed += '</div><div style="float: left;width:400px;height:18px;overflow:hidden;"><a href="' + entry.link + '" target="_blank" title="' + entry.title + '【' + entry.blogName + '】">' + entry.title + '/' + entry.blogName +'</a></div>'; } container.innerHTML = '<div>' + useFeed + '</div>'; } function asort(myArray, key){ return myArray.sort ( function (b1, b2) { return b1[key] > b2[key] ? -1 : 1; } ); } google.setOnLoadCallback(initialize); //--> </script><font size="2" face="Times new Roman"> <div style="height:90px; width:600px; overflow:auto;" id="feed">Loading...</div> 上記のコードで問題なくフィードを表示できるのですが、一点修正したい箇所があります。 『entry.blogName』の部分なのですが、ここにはブログのタイトルなどを取得して表示されます。 ブログのタイトルがそのまま(芸能人の名前など)だったらいいのですが、稀にまったく関係ないタイトルがつけられていてそれだけだと誰のブログなのか閲覧者は分からなくなります。 それで受信するタイトルを自身の指定したテキストに書き換えたいのですが、そんな事はできるのでしょうか? 取得するブログのタイトル(entry.blogName)が○○だけど実際に表示する時には△△と表示させるような。 PHPは初心者でまったく分かりません。 詳しい方いらっしゃいましたらご教示ください。 何卒よろしくお願いします。

    • 締切済み
    • PHP
  • GoogleニュースのRSSフィードに関して

    GoogleニュースのRSSフィードに関して質問です。 ジャニーズが大好きで、RSSリーダーで色々情報収集しています。 下記サイトを見てGoogleニュースのRSSフィードを取得する方法を知りました。 ■参考サイト http://d.hatena.ne.jp/Gimite/20061205/1165287606 「嵐」の検索結果 http://news.google.co.jp/news/search?pz=1&cf=all&ned=jp&hl=ja&q=%E5%B5%90 「嵐」のRSS http://news.google.com/news?hl=ja&ned=us&ie=UTF-8&oe=UTF-8&output=atom&q=%E5%B5%90 こんな感じで「q=」以下を変更することでRSS化というのができているんですが、 今回やりたいのはちょっと検索条件を細かく設定した場合です。 「NEWS 山下智久 OR 山P」の検索結果 http://news.google.co.jp/news/search?pz=1&cf=all&ned=jp&hl=ja&as_q=NEWS&as_epq=&as_oq=%E5%B1%B1%E4%B8%8B%E6%99%BA%E4%B9%85+%E5%B1%B1P&as_eq=&as_scoring=r&btnG=%E6%A4%9C%E7%B4%A2&as_drrb=q&as_qdr=a&as_minm=10&as_mind=27&as_maxm=11&as_maxd=26&as_nsrc=&as_occt=any ↑これはNEWSというキーワードを必ず含みつつ、山下智久か山Pいずれかを含むGoogleニュースの検索結果という条件指定です。 これをRSS化したいんですが、q=の差し替えだけだと、うまくRSSフィードになりませんでした。 RSS化する方法を教えてもらえたら嬉しいです。よろしくお願いします。

    • ベストアンサー
    • XML
  • RSS配信していないサイトのフィードを取得する方法は?

    WEBサイトにRSSボタンがないサイト(たとえば、NTTのサイトなどhttp://www.ntt-west.co.jp/news/) のフィードを取得する方法はないでしょうか。 http://○○○/▼▼.xmlなどの”URL”で取得したいです。 自分の情報収集のために、WEBページにお気に入RSS情報を表示 させる目的です。 ブラウザやソフトウェアのRSS機能ではなく、私のWEBページに 情報を羅列するサイトを構築しました(PHPで) RSS配信しているサイトは、URLがあるので問題なく表示できているのですが RSS配信していないサイトも表示させたいと考えています よろしくお願いします

    • ベストアンサー
    • PHP
  • atomのフィードをphpで出力したい

    よろしくお願い致します。 phpの勉強を最近始めまして、 ブログの更新情報をphpで作ったページに出力させたいと思っています。 <?PHP require_once("RSS.php"); $rss=new XML_RSS("http://xmlのアドレス?"); $rss->parse(); ?> <h1><?php print(mb_convert_encoding($rss->channel['title'],"EUC-JP","auto")); ?></h1> <ul> <?php foreach($rss->items as $item){ ?> <?PHP print(mb_convert_encoding($item['$title'],"EUC-JP","auto")); ?> <li> <a href="<?php print($item['link']); ?>"> <?php print(mb_convert_encoding($item['title'],"EUC-JP","auto")); ?> </a> </li> <?php } ?> </ul> こんなスクリプトでrss1.0はタイトルとリンクが上手く表示されるのですが、atomのフィードで表示させようとするとtitleは表示されるのですがlinkが上手く取得できません。 ネットで検索してみたのですが、 通常atomのフィードはMagpieRSS等を利用してrss1.0等に変換したのちに上記のようなスクリプトを利用して表示させるという考え方でよろしいでしょうか? またatomのフィードをスクリプトで表示させる参考になるおすすめのサイトをご存知でしたらURLを教えていただけますでしょうか? どうぞ皆様ご指導よろしくお願い致します。

    • ベストアンサー
    • PHP
  • RSSで特定のカテゴリを取得する方法

    今までブログを書いていて、今はHPを作っています。 ブログには様々なジャンルの記事を書いていますが、 HPは特定のジャンルに対して作る予定です。 そこで今までブログに書いた記事をHPにRSSでフィードして載せようと考えていますが、 MagpieRSSを使って最新記事を無事に取得はできましたが、 特定のカテゴリの記事のみの取得はできないでしょうか? ネット上のプログラムを参考にして、 --------------------------- require_once 'rss_fetch.inc'; $url = '取得したいサイトのURL'; $rss = fetch_rss($url); $title = $rss->channel['title']; --------------------------- どこにもカテゴリ取得のコマンドがないのですが、そもそもできないものでしょうか? MagpieRSSじゃなくても、できる方法があれば紹介していただければと思います。 よろしくおねがいします。

    • 締切済み
    • PHP
  • DBI、joinsした時の、出力構造について

    先日、 joinした際、同じidのものは 纏まってくれたらハッピーだと考えました。 あれそれ動かしてきたのですが、出力結果でゴニョゴニョ行うのではなく、 一発で 目的の出力結果にならないものでしょうか。 よろしくお願いします。 テーブル1 a___b___c_ 1___BB__CC 2___BB__CC 3___BB__CC テーブル2 d___e___f D___E___1 D___E___2 D___E___2 結合テーブル a___b___c___d___e___f 1___BB__CC__DD__EE__1 2___BB__CC__DD__EE__2 2___BB__CC__DD__EE__2 3___BB__CC__ 出力結果 $VAR1_=_[ __________{ ____________'a'_=>_1, ____________'b'_=>_BB, ____________'c'_=>_CC, ____________'d'_=>_DD, ____________'e'_=>_EE, ____________'f'_=>_1, __________}, ____________[ ______________{ ________________'a'_=>_2, ________________'b'_=>_BB, ________________'c'_=>_CC, ________________'d'_=>_DD, ________________'e'_=>_EE, ________________'f'_=>_2, ______________}, ______________{ ________________'a'_=>_2, ________________'b'_=>_BB, ________________'c'_=>_CC, ________________'d'_=>_DD, ________________'e'_=>_EE, ________________'f'_=>_2, ______________}, ____________] __________,{ ____________'a'_=>_1, ____________'b'_=>_BB, ____________'c'_=>_CC, ____________'d'_=>_, ____________'e'_=>_, ____________'f'_=>_, ___________}, よろしくお願いします。

    • ベストアンサー
    • Perl
  • RSSフィードを取得して【NEW】画像をつけたい

    現在サイトを作成していて、そのトップページで他サイトのRSSを取得して表示しています。 表示する事自体は出来たのですが、現在の日付より1週間以内のフィードには【NEW】という画像をつけたいと考えています。 初心者なりに試行錯誤してやってみたのですが、いっこうに上手くいきません。 【NEW】の画像を表示するには下記のJavascriptを使用しています。 <script language="JavaScript"> <!-- function newUp(y, m, d, c) { delDay = 7; oldDay = new Date(y + "/" + m + "/" +d); newDay = new Date(); d =(newDay - oldDay) / (1000 * 24 * 3600); if(d <= delDay) { if(c == "new") document.write("<img src='./img/new.gif' border='0'>"); if(c == "up") document.write("<img src='./img/up.gif' border='0'>"); } } //--> </script> <script>newUp(年,月,日,"new")</script> フィードの年月日を取得してから、どうやって上記のコードの年、月、日のとこに変数を持っていくのかが分かりません。 RSSの取得については下記サイトを参考にしました。 http://neta-times.net/entries/953/ 下記が私のページのURLです。ソースは凄く稚拙でお見苦しいですがご了承ください。 http://aviflag.orsp.net/avispa-news.shtml ご存知の方いらっしゃいましたらご教授ください。 よろしくお願いします。

専門家に質問してみよう