はじめに
Forguncy はグレープシティ社から提供されているExcel ライクな操作感でWeb アプリが開発できるツールです。 www.forguncy.com
本記事では、Forguncy の外部データ接続機能を使って、ODBC 経由でTwitter のリアルタイムデータを操作できるWeb アプリを開発します。Twitter のデータを取得するにはカスタムSQL で条件を絞る必要があります。Forguncy にはMS Access のようなクエリ作成機能があり、SQL 文に慣れていないユーザーでも簡単にクエリを作成することができます。
ODBC Driver for Twitter の設定
CData Twitter ODBC Driverのインストール
以下のサイトから評価版ビルドをダウンロードします。
ダウンロードされたインストーラ形式(.exe)のファイルを起動します。 (注)ODBCデータアドミニストレーターを閉じてから実行してください。 (注)途中オンラインでのアクティベーションが実行されるためインターネットアクセス出来る環境で行ってください。
下記のようなインストーラが起動するので、ライセンス契約書を確認した上で、デフォルト設定のままインストールを進めて完了させます。
インストール完了後にODBCのDSN構成ダイアログが表示されます。
(注)ODBCデータソースアドミニストレーターはForguncy では、32bit を使うとのことです。個別に32bit ODBC アドミニストレータを使わない限り、ODBC DSN 構成ダイアログでは64bit、32bit DSN を両方作成しまs。
CData Twitter ODBC Driverの接続設定
ODBCのDSN設定
起動した「ODBCのDSN構成」ダイアログ内の下記の項目に、Twitter アカウント、および、TwitterでAPIアクセスするためのOAuthクレデンシャル取得方法で事前に取得したOAuthクレデンシャル情報を設定します。
TwitterのOAuthクレデンシャル | 設定項目 |
---|---|
Consumer Key (API Key) | OAuth Client Id |
Consumer Secret (API Secret) | OAuth Client Secret |
Access Token | OAuth Access Token |
Access Token Secret | OAuth AccessToken Secret |
「接続テスト」ボタンをクリックします。「ODBCのDSN構成」の「OK」ボタンをクリックして保存します。
Forguncy でTwitter データを検索するアプリ作成
外部データソースにTwitter ODBC を登録し、Tweets テーブルを選択
Forguncy プロジェクトで、[リンクテーブルの作成]からODBC データソースを選択します。 今回は[CData Twtter Sys]データソースをドロップダウンで選択します。 テスト接続をして、OK を押して接続を確立します。
テーブル選択画面で、「Twitter.Tweets」テーブルを選択して、移動します。Tweets テーブルはTL に出てくるツイートがレコード状態で取得できるオブジェクトです。
主キーは[Id]を使います。
特定のキーワードを含むTweets をリストする設定
Twitter データ利用時に注意として、Twitter のAPI リミットにヒットするとしばらくの間API が叩けなくなります。Forguncy の[オプション]→[アプリケーション設定]→[外部データベースから取得するデータの上限レコード数]を制限することで、取得対象データが大きい場合でもリミット制限にヒットしないようにします。
デザインな画面で範囲をリスト設定した上で取得したいカラムをリストにバインドします。 今回は、以下を使っています:
Tweets テーブルカラム | 説明 |
---|---|
ID | Tweet の一意の識別子 |
From_User_Name | ツイートユーザーの名前 |
Text | ツイート本文 |
Retweets_Count | リツイート数 |
Retweeted_Status_Id | Tweet のリツイート元Id |
テーブルとTwitter データのバインド後に任意の文字列を含むTweets を表示するための設定を行います。まずはデザイナでセルを文字列に指定します。デフォルト数値に[GrapeCity]を入れておきます。
次にリストの[デザイン]画面で[クエリー条件]を設定します。SQL を知らない方でもフィルタリングをGUI から設定することができます。Forguncy が裏でODBC に準拠したクエリを発行してくれています。
今回は先ほど文字列として設定してGrapeCity という値を入れたセルに入った値を含むTweets を検索します。フィルタリング条件として[SearchTerms]疑似カラムをつかって、文字列セルを指定します。
また、リツイートで同じText のTweets がたくさん表示されるため、[Retweeted_Statud_Id]がNull のもの=リツイートではないツイートだけを表示させます。[%NULL%]を条件の引数にします。
Tweets のソートも[並べ替え]から可能です。今回は[Created_At]というツイート日時を新しいものから降順で並べます。
次に、Web アプリ実行時にクライアントから動的に検索文字列を変更してクエリを行う設定をしておきます。デザイナに[ボタン]を指定します。[コマンド]から[クエリー]実行コマンドを選択して、SearchTwerms の引数にB1 セルを渡す設定をします。
実行
Forguncy アプリを実行します。 たしかにGrapeCity という文字列を含むTweets がリスト形式で表示されました。 ちなみにTwitter の無償のAPI では過去7日間のTweets しか取得できません。よりさかのぼったTweets の取得にはTwitter の有償API が必要です。
次に、テキストボックスに任意の文字列を入れましょう。例として[kintone]と入れます。[クエリ実行ボタン]をクリックすると今度はkintone を含むTweets がリスト表示されます。
まとめ
このように、Twitter データをリアルタイムでクエリするWeb アプリが簡単に作れます。Forguncy によるカスタムクエリがCData ODBC Driver に渡され、リアルタイムでTwitter のデータを実行環境からクエリすることができています。
ちなみにですが、Forguncy の機能を使って、実行時にクライアントから「リストに行を追加」することも可能です。どうなると思いますか? なんとTwitter に自分のアカウントからツイートできてしまいます。
ここまで読んでいただきましたので、是非、CData Japan のオフィシャルツイッターをフォロー願います:https://twitter.com/CDataJapan