Google Feed API 終了によるあれこれ

テーマ:

2017年1月11日よりGoogle Feed APIが終了したようで

代替案をどうするかについてweb上でちょっとした話題になっていた。

 

「Google Feed API 終了」

http://fanblogs.jp/booboo7x70/archive/273/0

 

個人的に外部サーバのrssを読み込み表示したかったので

このクロスドメイン可能な方法について調べた。

 

1.jqueryだけでやる方法

ajaxでクロスドメインのXMLを読みこむ。

jquery.xdomainajax.js を使うことで可能になる。

以下のサイトに詳しい。

「ajaxでXMLを読み込む2」

http://mrorm.jpn.org/memolog/jquery/entry691.html

しかしこの方法は欠点がある。

それはjquery.xdomainajax.js 自体がYahooのAPIを使っていることだ。

今回のGoogle Feed APIのようにいつサービスが終了するか

わからない。なのでこの方法はやめた。

 

2.phpを使う方法

phpでフィードを読み込むのはわりと簡単である。

simplexml_load_fileという機能があるのでこれを使う。

 

3.magpie rssを使う方法

これもphpで書かれており、更新は止まっているのだが

いまだに心強い味方である。

 

※(2017.3.21追記)

自分が使っているレンタルサーバーのlolipopでは

php ver.7.1 になってからmagpie rssが動かなくなったようで、

この方法は使えなくなった。

 

4.php+jqueryを使う方法

これに関しては

「[php] 外部rssを取得してサイト上に表示する」

http://xxx.s500.xrea.com/0004.html

にでている方法でうまく表示できた。

 

◆php部分 → rss_get.php という名前で保存

<?php

header("content-type: application/javascript; charset=utf-8");  

$rss = 'http://(rss2.0のURL)'; 

$data = simplexml_load_file($rss); 

$data = $data->channel->item; 

 

echo "callback(["; 

foreach($data as $d){ 

 $pd = date_parse_from_format("D, d F Y H:i:s O", $d->pubDate); 

 $pd = sprintf("%s年%s月%s日 %02d:%02d",$pd['year'] ,$pd['month'],$pd['day'],$pd['hour'],$pd['minute']); 

 printf('{"date":"%s", "title":"%s", "link":"%s"},' ,

 $pd, htmlspecialchars($d->title), $d->link); } echo "]);";

?>

◆javascript部分

$(document).ready(function(){
  $.ajax({
  type: 'GET',
  url: '(rss_get.phpのurl)',
  dataType: 'jsonp',
  jsonpCallback: 'callback',
    success: function(json){
      for(var e in json){
        $("ul.rssData").append('<li><a href="'+json[e].link+'">'+json[e].title+'<br /><small>'+json[e].date+'</small></li></a>');
      }
    }
  });    
});

descriptionの中身から画像にマッチさせて

それを渡すという事をやれば画像も取得できたりする。

 

なお、simplexml_load_file()を使うには

php.iniの設定でallow_url_fopen を on にしないといけない

ので注意。

 

jqueryの書き方に関しては

「jQueryのパフォーマンスを下げるアンチパターンに関する超意訳」

http://qiita.com/mah_lab/items/fbec02ad2a541261a511

を参考にちょっと変えた。

 

また「jQueryのajaxの書き方」

http://blog.ext.ne.jp/?p=2038

によればjqueryの「success」や「error」はバージョン1.8で

非推奨となったので今後使用できなくなる可能性がある。

done や fail を使用するようにした方がいい模様。

AD

「破門」を見た。

テーマ:
渋谷のシネパレスで
映画 「破門 ふたりのヤクビョーガミ」 を見てきた。
主演;佐々木蔵之介 横山裕 北川景子 
公式HP http://hamon-movie.jp/
思ってたより面白かった。
 
原作の疫病神シリーズのファンだけに
出来が気になっていたが、わりと原作の
雰囲気は出てたかな。
帰りに北海道ラーメン 味丸という店で
味噌ラーメンを食べた。うまかった。
 
 
AD

mailto:タグが使えない件について

テーマ:
windows10にアップデートしてはや数か月が過ぎた。
今までメインブラウザソフトとして
インターネットエクスプローラ(IE)を使ってきたが
win10では新たなブラウザとしてMicrosoftEdgeが登場した。
このEdge,自分の環境では時々フリーズしたりするので
困っている。そこで今ではchromeをメインに使い続けてたり。

さて,昨日気づいたことなのだがhtmlのタグのmailto:タグが
使えなくなったんじゃないかという気がする。
今まではhtmlのタグのa要素でメールアドレスを指定すると
リンクをクリックした時にメールソフトが立ち上がるようになっていた。
詳しくは
ここ
にでているが,ブラウザがedgeになってから
mailto:タグが使えなくなった…と思う。ほかの環境で試してないので
断言できないのだがmailto:をいくらクリックしてもメールソフトが
立ち上がらない。おかしいなぁ…IE10あたりまでは確かoutlookが立ちあがって
いたのに…と思った。

そこでここのサイトを見ると
mailto:のメールリンクをGMAILで開くようにする設定の仕方というのが出ていた。
詳しくは上記のサイトに出ているがGmailのハンドラを使って
mailto:のメールリンクをGMAILに関連付けている。GmailじゃなくてOutlook
使いたいんだけどな…。だれか知ってたら情報ください。
AD