やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

はてなAPI用gemでブログを投稿してみる

前回のつづき。はてなAPIが使えるか試してみる。

開発環境

gem License Copyright
hatenablog MIT Copyright © 2015 Kohei Yamamoto

背景

Ruby ではてな OAuth のアクセストークンを取得する - blog.kymmt.com
はてなブログ API 用の gem を書いた - blog.kymmt.com

準備

実行

はてなブログ API 用の gem を書いた - blog.kymmt.com

上記の通り、設定ファイルを用意する。

hatenablogを実行してみた結果、以下のようなエラーが出た。参考先にはconf.ymlとあるが、エラー内容ではconfig.ymlとある。

/home/mint/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/hatenablog-0.5.0/lib/hatenablog/configuration.rb:14:in `read': No such file or directory @ rb_sysopen - ./config.yml (Errno::ENOENT)
  from /home/mint/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/hatenablog-0.5.0/lib/hatenablog/configuration.rb:14:in `create'
   from /home/mint/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/hatenablog-0.5.0/lib/hatenablog/client.rb:21:in `create'
  from test.rb:4:in `<main>'

結果2

設定ファイル名をconfig.ymlに修正すると実行できた。

予想通りの結果になってくれた。

  • 既存の投稿を取得した
  • 新規投稿した(実行時にすぐ投稿。予約投稿ではない)
  • 投稿した記事のタイトルを更新した
$ bash rub.sh 
ruby 2.4.0p0 (2016-12-24 revision 57164) [i686-linux]
/home/mint/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/nokogiri-1.6.8.1/lib/nokogiri/xml/document.rb:44: warning: constant ::Fixnum is deprecated
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "SoftwareSourceCode",
"name": "GitHub.Upload.ByShell.201702020912",
"description": "GitHubリポジトリを作成してローカルDBに登録するシェルスクリプト(仮)",
"dateCreated": "2017-02-02T09:12:00Z",
"codeRepository": "https://github.com/ytyaru/GitHub.Upload.ByShell.201702020912",
"programmingLanguage": "Python",
"runtimePlatform": "Python3.4.3",
"codeSampleType": "$ python Main.py",
"author": {
  "@context": "http://schema.org",
  "@type": "Person",
  "name": "ytyaru",
  "url": "https://github.com/ytyaru",
  "sameAs": ["http://ytyaru.hatenablog.com/about"]
}
}
</script>
2件目の記事を書く。



以上。
テスト記事を書いてみる。



# 見出し1

* 項目1
* 項目2
* 項目3

以上。

はてなブログから新規投稿されていることを確認した。

これではてなAPIが使えることを確認できた。

課題

  • Python3で書く
    • もうRubyはこりごり
    • 自分でも書いてみたい
  • 予約投稿できるか確認したい

これまでの歴史

はてなAPIの動作確認をするために、どれだけ回り道をする羽目になったか振り返ってみる。じつに23記事。

http://ytyaru.hatenablog.com/entry/2017/05/09/000000
http://ytyaru.hatenablog.com/entry/2017/05/10/000000
http://ytyaru.hatenablog.com/entry/2017/05/11/000000
Server Error
Server Error
http://ytyaru.hatenablog.com/entry/2017/05/14/000000
http://ytyaru.hatenablog.com/entry/2017/05/15/000000
http://ytyaru.hatenablog.com/entry/2017/05/16/000000
http://ytyaru.hatenablog.com/entry/2017/05/17/000000
http://ytyaru.hatenablog.com/entry/2017/05/18/000000
http://ytyaru.hatenablog.com/entry/2017/05/19/000000
http://ytyaru.hatenablog.com/entry/2017/05/20/000000
http://ytyaru.hatenablog.com/entry/2017/05/21/000000
http://ytyaru.hatenablog.com/entry/2017/05/22/000000
http://ytyaru.hatenablog.com/entry/2017/05/23/000000
http://ytyaru.hatenablog.com/entry/2017/05/24/000000
http://ytyaru.hatenablog.com/entry/2017/05/25/000000
http://ytyaru.hatenablog.com/entry/2017/05/26/000000
http://ytyaru.hatenablog.com/entry/2017/05/27/000000
http://ytyaru.hatenablog.com/entry/2017/05/28/000000
http://ytyaru.hatenablog.com/entry/2017/05/29/000000
http://ytyaru.hatenablog.com/entry/2017/05/30/000000
http://ytyaru.hatenablog.com/entry/2017/05/31/000000

お疲れ様でした私。

所感

やっとAPIの実行が確認できた。そのために無駄に苦労した。既存パッケージがあれば簡単に確認できると思ったのに。まさかその環境構築のせいでOS再インストールまでやる羽目になるとは計算外だった。何度もやめたいと思ったが、ここまでやった私えらい。ともあれ、これで先が見えてきた。