Help us understand the problem. What is going on with this article?

D言語でTwitterAPIを叩いて色々遊んだ話

More than 5 years have passed since last update.

はい、D言語 Advent Calendar 4日目の記事です。

どうでもいい話ですけど、自分のBlogに書くかQiitaに書くか迷ったんですけどなんとなくこっち(Qiita)に書くことにしました。

今回は、僕が今年D言語でTwitterAPIを叩いて色々と遊んだ話ということで、D言語でもTwitterAPI触れるよ!
こんなもの作れるよ!って感じの内容で行こうと思いますのでよろしくお願いします。

じゃあ、早速いってみましょう!

D言語でもTwitterAPIが叩きたい!

僕のつくったライブラリがあります。
Git Repository : Twitter4D
全て標準ライブラリだけで完結させているので面倒な事無しにD言語でTwitter APIが叩けます。
インストール手順

  1. 適当にTwitter4Dを clone
  2. twitter4d/source/twitter4d.d を作業ディレクトリにコピー
  3. インストール完了

これだけです!
簡単ですね!!

使い方を書いておきます。

helloWorld.d
import twitter4d;

void main(){
  Twitter4D t4d = new Twitter4D([
    "consumerKey"       : "Your Consumer Key",
    "consumerSecret"    : "Your Consumer Secret",
    "accessToken"       : "Your Access Token",
    "accessTokenSecret" : "Your Access Token Secret"]);

  t4d.request("POST", "statuses/update.json", ["status" : "Hello World!"]);
}

コンパイル方法が少々特殊なので書いておきます。

% dmd FileName.d twitter4d.d -L-lcurl

こんな感じにtwitter4d.dと -L-lcurlの2つをdmd コンパイルしたいファイル名 の後に付け足す必要が有ります。
まあ、これだけなので特殊でもなんでもないですね。

あとは実行するだけです

% dmd helloWorld.d twitter4d.d -L-lcurl
% ./helloWorld

これでHello WorldとTweetされます!!
ほかにもUserStreamとかも普通に扱えますので詳しくはTwitter4Dのreadmeを見て下さい。

Twitter4Dは当初、最小限の処理しか実装しないという方針で開発していたのですが、いちいちエンドポイント直打ちってのも面倒なので
twitterAPIというブランチでエンドポイントごとの実装を進めています(最近出来ていませんが・・・)。
twitterAPIブランチのtwitter4d.dはコンパイルするときに、更にtwitterAPI.dと -version=useTAPIが増えてこうなります「

% dmd FileName.d twitter4d.d twitterAPI.d -version=useTAPI -L-lcurl

取り敢えずライブラリについての話はここまでにしましょう。

UserStreamで遊びたい!

結構前にTwitter4Dで何かつくりたいな~って思ってつくったTwitterの通知ツールがあります。
Git Repository : twitnotify
※ えっと、libnotify(notify-sendコマンド)を内部で呼び出しているのでそれが使える必要があります

インストール手順

  1. git clone https://github.com/alphaKAI/twitnotify
  2. rdmd build.d
  3. (any editor) setting.json

これでOkです、3の(any editor)のとこはVimなりEmacsなりすきなエディタに置き換えてください。
そしてConsumer Keyとかを書き込んだら終了です。

ビルドは既にインストール手順2で終わっているので実行してみましょう。

% ./twitnotify

これで起動してくれます
起動直後は何も怒らないように見えますがしばらくするとCurlのプログレス表示が出てくると思います(消そうと思ったけど調べても消し方がわかりませんでした)。
それが確認できたら起動成功です。
あとはなにかTwitterでリプライが来たりふぁぼられたりすると通知してくれます。

GUIでTweetがしたい!

(昨日)作りました。
できたてホヤホヤ(?)です。
えっと今回のはGistに投稿してあります。
Gist : alphaKAI/gtkTweet.d

Tweet専用のクライアントです。
なお、GUIはGtkDというライブラリを使っていますので適当にインストールしておいてください。

インストール手順

  1. git clone https://gist.github.com/alphaKAI/c7253e83da01a63d9c30 gtkTweet
  2. dmd gtkTweet.d twitter4d.d -L-lcurl -L-lgtkd-2 -L-ldl
  3. (any editor) setting.json

3を書きましたが、setting.jsonは先程の物をコピーしてもらっても全く問題ないので流用しましょう。

後は実行してみてください!

適当なGUIが起動すると思います。
gtkTweet GUI

とりあえずこんな感じになります。

まとめ

とりあえず、こんなものでしょうか。
僕はまだまだD言語わからないので他の人みたいに言語機能についてとか全然かけないので、視点を変えて(?)
D言語でも簡単にTwitterAPIを使ったアプリケーション書けるよ!!ってことを紹介してみようと思って今回この記事を書きました。
D言語はとても強力なので、簡単にいろいろなものを作ることができます。
参考までに、この記事でいくつか紹介したアプリケーションはだいたい20 ~ 30分程度でかけました!

さあ、みなさんもD言語でTwitterAPI叩きましょう!!!

では、以上です

α改

alpha_kai_NET
D/C/Ruby/Haskell/TypeScript GitHub: https://github.com/alphaKAI Twitter: https://twitter.com/alpha_kai_NET
http://alpha-kai-net.info
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away