TTwitterBot - Twitter API 1.1 library for Delphi



TTwitterBot2 - Twitter API v2 library for Delphi is here !



This is a library of Twitter API 1.1 for Delphi, and it is suitable for those who are developing the Twitter bot applications for the general users.

Important: This library may be used freely in commercial and private. However, we have no concern about the results of library use.

License Version: GPL version 3

(c)2014 by melanion

Download with a post tweet demo

Download with a application-only auth demo

In addition, you need a OpenSSL library (Win32 OpenSSL v1.0.1j or later).


mailto: ofni.noinalem@inimqe


Demo Application
Twitter Auth

Twitter Auth
Twitter Post tweet
Post Tweet



Delphi用のTwitter API 1.1対応のライブラリです。おもに、Twitter botアプリを一般ユーザ向けに開発している方に適していると思います。

なお、私用ならびに商用で自由に使用してもかまいません。ただし、ライブラリ使用の結果については、当方は一切関知しません。



はじめに

公開しているフリーウェアEqWatchのTwitter対応の一環として開発したものです。開発前、Twitter API 1.1対応のDelphiライブラリを探したのですが、結局、利用できそうなものが見つからず、しかたなくTwitterのDeveloper向けサイト を参考にして、Delphiで一から作ってみました。
実装しているのは、「連携アプリ認証」と「投稿」の部分だけで、API全体から見れば、ほんの一部です。
なお、以下で簡単にTwitterのOAuth認証について説明していますが、すでにOAuth認証を熟知している方はスキップして ください。


OAuth認証

現在、TwitterでAPIを利用する場合、OAuth認証が必須となっています。また、このOAuth認証には、 ConsumerKey/ConsumerSecretおよびAccessToken/AccessTokenSecretの4つのキーが必要となります。
前者の2キーは「アプリ登録」で取得します。
後者の2キーは「連携アプリ認証」で取得します。


Twitterアプリ登録(アプリ開発者が開発前に実行)

Twitterアカウントと適当なアプリ名(後で変更可能)を用意して、Twitterアプリ登録サイトで、これから開発 するアプリを登録します。なお、Application Typeは「Read and Write」にしてください。こうれを忘れるとアプリから投稿ができません。
アプリ登録が成功すると、上記のConsumerKeyとConsumerSecretという2つのキーを取得できます。これは開発 するアプリに紐付けされたキーですから、大切に保管してください。


連携アプリ認証(開発したアプリ上でユーザが実行)

まず、request_token APIで仮のキーであるRequestTokenを取得します(TTwitterBotライブラリのGetRequestToken関数)。
このRequestTokenをURLに連結してShellExecuteを実行すると(TTwitterBotライブラリの RequestVerifier関数)、「規定のブラウザ」が表示され、Twitterにログインするにようにユーザを促します(図 1)。なお、持続的にログイン状態にしている場合、ログイン部分は表示されません(図2)。

Twitter
              Sign-in A図1: Twitter Sign-In A



twitter
              Sign-in B図2: Twitter Sign-In B

ブラウザ上でユーザが連携アプリに許可を与えると、PINコードが表示されたページに移動します。

Twitter Sign-In C

このPINコードをアプリに入力して、sign-in-with-twitter APIを実行すると(TTwitterBotライブラリのGetAccessToken関数)、正式な AccessToken/AccessTokenSecretが取得できます。このキーはユーザのTwitterアカウントと連携ア プリを紐付けするキーです。なお、AccessTokenSecretはレジストリまたはiniファイルに暗号化して保存する必要が あります。


Tweet投稿
TTwitterBotクラスのPostTweet関数を使って、Tweetを投稿できます。
PostTweet関数は引数の違いにより2つの関数がoverloadされています。

1) function PostTweet(Text: string): string; overload;
テキストのみを投稿するときに使用します。引数「Text」にツイートするテキストを指定します。

2) function PostTweet(Text: string; Filename: string): string; overload;
画像付きで投稿するときに使用します。引数「Text」にツイートするテキストを指定します。さらに、引数「Filename」に画 像ファイル(jpeg、gif、pngのみ)を絶対パスで指定します。

その他の関数
参考までに実装した関数です。

1) function GetConfiguration: string;
画像の最大サイズ、URLの文字数などを取得できます。ただし、結果として得られる文字列を適切なJson Parserを使ってパースする必要があります。

2) function GetTweets: string;
ホームタイムラインを取得します。ただし、結果として得られる文字列を適切なJson Parserを使ってパースする必要があります。


ダウンロード 1
TTwitterBotクラス(デモ付き)をダウンロードします。

ダウンロード 2
Application-only auth デモ


開発に使用したDelphi - Delphi XE Starter
Indy version 10.5.7

その他、デモの実行には定数「ConsumerKey」および「ConsumerSecret」を自分のものに置き換えてください。

実行には、最新のOpenSSLライブラリが必要です(Win32 OpenSSL v1.0.1j 以降)。
(ファイルlibeay32.dllおよびssleay32.dllをプロジェクトフォルダにコピーしてください。)

指摘、質問などがありましたら、こちらまでメールをいただけたら幸いです: ofni.noinalem@inimqe