コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

本日のおすすめニュースなどを取得してみたりするのですです

以前に「Feedly便利だぜー」とか言っておいて特にまともな利用をしていなかったので思い出したように使ってみることにします。

あれは今から数ヶ月ぐらい前の話になるんですけどね。僕が Feedly を使って新しい風を呼び込むぞとか意気込んでいたんですよ。それがですよ。現在どうなってしまったのかというと僕のブログは廃墟のような何かが継続していて、肝心の Feedly は全く使いこなせずにいるのでした……。

以前の記事
inujini.hatenablog.com

どうして僕は、ろくに使いもしないくせにそういったサービスを使いたがるのでしょうね。どうして……。



そんなわけでAPIを使ってみることにします

ここだけの話ですが、僕がSNSに登録しまくるのはAPIを利用したいからでないからという噂もあります*1。そんなわけですので、APIをさわっていきます。興味がない人もいると思いますが、しばしおつきあいください。


まずは利用のためのAPIトークンを発行してもらいます。
feedly cloud | developer

登録するとこんな感じです、黒塗りで覆ってますが肝心のアクセストークンクソ長いです。おぅ、ベリーベリーロング。ちなみに有効期限付き(expires on XXXX-XX)。
f:id:andron:20180504184633p:plain


まあ、そういったわけでしてトークンの入手ができました。まずは何はともあれ使ってみましょう。

ドキュメントはこちら
The feedly Cloud API
使い方については当然のようにアメリカ語だけど、このブログを読むような聡明な読者の皆様なら余裕ですよね。


何のネタも思いつかなかったので、サンプルにあるEngadgetの人気記事をとってくるやつをRubyで実装してみることにします。

curl 'http://cloud.feedly.com/v3/mixes/contents?streamId=feed%2Fhttp%3A%2F%2Fwww.engadget.com%2Frss.xml&count=3' -H 'Authorization: OAuth YourAuthToken'

ドキュメント曰く大まかな書き方は以下のようになるそうですね。

GET /v3/mixes/contents?streamId=:streamId

とりあえずサンプルそのままだと英語版のEngadgetのほうが引っ張られるのでURLをジャパニーズ版に書き換えて実行することにします。あとは別に変更加えなくていいか……。こうやってサンプルにあるようなニュースしか引っ張ろうとしないから僕は未だにFeedlyを使いこなすに至らないんだろうね……。


つくった

実行するとこんな感じに最近のニュースのタイトルを取得してくれます。

$ ruby ***.rb
メガネ型コンピュータ (Google) Glass復活。プリズム大型化や駆動時間延長、業務用として販売
警護ロボ「K5」が池に身投げ。ショッピングモールを巡回中、アシモフのロボット工学3原則破り
伝説のSF誌「ギャラクシー」350冊以上が無償公開。アシモフブラッドベリらが連載、PDFダウンロードも可能

以下、ソース

#!/usr/bin/env ruby
#coding: utf-8
require 'net/https'
require 'uri'
require 'json'

feed = 'https://cloud.feedly.com/v3/mixes/contents?streamId=feed%2Fhttp%3A%2F%2Fjapanese.engadget.com%2Frss.xml&count=3'
token = 'アクセストークン'

uri = URI.parse(feed)
https = Net::HTTP.new(uri.host, uri.port)

https.use_ssl = true
https.verify_mode = OpenSSL::SSL::VERIFY_NONE

req = Net::HTTP::Get.new(uri.request_uri)
req["Authorization"] = "OAuth #{token}"

res = https.request(req)
# 確認用
# puts res.code, res.msg
# puts res.body

jsonrq = JSON.parse(res.body)

for i in 0...jsonrq["items"].size do
    puts jsonrq["items"][i]["title"]
end

証明書スルーの方法がOpenSSL::SSL::VERIFY_NONEということがようやくわかって、少しだけ '読める' コードに近づいた…。ようやくhttpsの攻略方法がわかってきた……。まあ、それでもごり押しなんですけどねー(白目)。



そんな感じで今日も月曜です。普段から月曜判定とかクソみたいなことやっている僕ですけども、これからは少しずつ取得したニュースを使って有益な情報を提供できるようになれば僕の月曜ロビー活動も報われるってものです。まあ、多分そうはならないんですけどね。


そういうわけですので、一週間がはじまってしまったのです。がんばっていきましょう。

*1:FeedlyRSSリーダーですけど……