def yasuharu519(self):

日々の妄想

C++でInstagram APIを使ったクライアントを作ってみる

前回の記事では、 C++のRestクライアントである、restclient-cpp を使って、 http リクエストを送信するサンプルを紹介してみました。 せっかくなので、APIを叩くプログラムを作ってみたので紹介してみます。

Jsonパース

Web の APIJSON が基本的なインタフェースとなっていることが多いです。 今回、JSON のパースには、Dropboxが公開している dropbox/json11 を使用しました。

などでも紹介されています。 json11 は、ヘッダファイル、cppファイルがひとつずつと、とてもシンプルながら、 Initializer list が使えるなど、 c++11-way で JSON を扱えるのが特徴となっています。

Instagram クライアント登録

InstagramAPI にアクセスするためには、クライアント登録などが必要です。

などを参考にクライアント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 との連携が可能になっています。 まだまだ他の言語に比べたら冗長であったり、変化に弱かったりするけど、 これはこれで面白いなと思っているところ。