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)。
図1:
Twitter Sign-In A
図2:
Twitter Sign-In B
ブラウザ上でユーザが連携アプリに許可を与えると、PINコードが表示されたページに移動します。
この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