前回の記事では、 C++のRestクライアントである、restclient-cpp を使って、 http リクエストを送信するサンプルを紹介してみました。 せっかくなので、APIを叩くプログラムを作ってみたので紹介してみます。
Jsonパース
Web の API は JSON が基本的なインタフェースとなっていることが多いです。 今回、JSON のパースには、Dropboxが公開している dropbox/json11 を使用しました。
などでも紹介されています。 json11 は、ヘッダファイル、cppファイルがひとつずつと、とてもシンプルながら、 Initializer list が使えるなど、 c++11-way で JSON を扱えるのが特徴となっています。
Instagram クライアント登録
Instagram の API にアクセスするためには、クライアント登録などが必要です。
などを参考にクライアントIDを取得してください。
Instagram API へのアクセス
今回は、特定のタグがついた、最近投稿された写真を保存するプログラムを作ってみました。
ID.jpeg
という名前で、取得したファイルが保存されます。
下記のプログラムでは、tagとして cat
が付けられた写真を検索して保存してきます。
クライアントIDは、取得したものに書き換えてください。
ビルド時は、restclient-cpp, json11 を使用しているため
$ g++ -std=c++11 -lrestclient-cpp json11.cpp crawl_instagram.cpp $ ./a.out
というように、ライブラリの指定などが必要です。
このように、c++ でも簡単に Web との連携が可能になっています。 まだまだ他の言語に比べたら冗長であったり、変化に弱かったりするけど、 これはこれで面白いなと思っているところ。