CData Software Blog

クラウド連携のCData Software の技術ブログです。

Forguncy からTwitter データ連携:特定キーワードを含むツイートをレコード取得

はじめに

Forguncy はグレープシティ社から提供されているExcel ライクな操作感でWeb アプリが開発できるツールです。 www.forguncy.com

本記事では、Forguncy の外部データ接続機能を使って、ODBC 経由でTwitter のリアルタイムデータを操作できるWeb アプリを開発します。Twitter のデータを取得するにはカスタムSQL で条件を絞る必要があります。Forguncy にはMS Access のようなクエリ作成機能があり、SQL 文に慣れていないユーザーでも簡単にクエリを作成することができます。 f:id:cdatasoftware:20190318211630p:plain

ODBC Driver for Twitter の設定

CData Twitter ODBC Driverのインストール

以下のサイトから評価版ビルドをダウンロードします。

ダウンロードされたインストーラ形式(.exe)のファイルを起動します。 (注)ODBCデータアドミニストレーターを閉じてから実行してください。 (注)途中オンラインでのアクティベーションが実行されるためインターネットアクセス出来る環境で行ってください。

下記のようなインストーラが起動するので、ライセンス契約書を確認した上で、デフォルト設定のままインストールを進めて完了させます。

f:id:cdatasoftware:20190318201528p:plain

インストール完了後にODBCのDSN構成ダイアログが表示されます。 f:id:cdatasoftware:20190318201618p:plain

(注)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 を押して接続を確立します。 f:id:cdatasoftware:20190318202222p:plain

テーブル選択画面で、「Twitter.Tweets」テーブルを選択して、移動します。Tweets テーブルはTL に出てくるツイートがレコード状態で取得できるオブジェクトです。

主キーは[Id]を使います。

f:id:cdatasoftware:20190318202431p:plain

特定のキーワードを含むTweets をリストする設定

Twitter データ利用時に注意として、TwitterAPI リミットにヒットするとしばらくの間API が叩けなくなります。Forguncy の[オプション]→[アプリケーション設定]→[外部データベースから取得するデータの上限レコード数]を制限することで、取得対象データが大きい場合でもリミット制限にヒットしないようにします。 f:id:cdatasoftware:20190318202717p:plain

デザインな画面で範囲をリスト設定した上で取得したいカラムをリストにバインドします。 今回は、以下を使っています:

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%]を条件の引数にします。

f:id:cdatasoftware:20190318202938p:plain

Tweets のソートも[並べ替え]から可能です。今回は[Created_At]というツイート日時を新しいものから降順で並べます。 f:id:cdatasoftware:20190318204021p:plain

次に、Web アプリ実行時にクライアントから動的に検索文字列を変更してクエリを行う設定をしておきます。デザイナに[ボタン]を指定します。[コマンド]から[クエリー]実行コマンドを選択して、SearchTwerms の引数にB1 セルを渡す設定をします。

実行

Forguncy アプリを実行します。 たしかにGrapeCity という文字列を含むTweets がリスト形式で表示されました。 ちなみにTwitter の無償のAPI では過去7日間のTweets しか取得できません。よりさかのぼったTweets の取得にはTwitter の有償API が必要です。

f:id:cdatasoftware:20190318204433p:plain

次に、テキストボックスに任意の文字列を入れましょう。例として[kintone]と入れます。[クエリ実行ボタン]をクリックすると今度はkintone を含むTweets がリスト表示されます。

f:id:cdatasoftware:20190318204619p:plain

まとめ

このように、Twitter データをリアルタイムでクエリするWeb アプリが簡単に作れます。Forguncy によるカスタムクエリがCData ODBC Driver に渡され、リアルタイムでTwitter のデータを実行環境からクエリすることができています。

ちなみにですが、Forguncy の機能を使って、実行時にクライアントから「リストに行を追加」することも可能です。どうなると思いますか? なんとTwitter に自分のアカウントからツイートできてしまいます。 f:id:cdatasoftware:20190318204947p:plain

ここまで読んでいただきましたので、是非、CData Japan のオフィシャルツイッターをフォロー願います:https://twitter.com/CDataJapan