概要
Facebookに接続する方法について説明します。
本記事において説明する内容は2023年3月に検証したものであり、Meta社によりFacebook側の仕様が変更された場合は、手順が正常に実施できない可能性があります。
検証環境
製品・サービス | バージョン | 備考 |
---|---|---|
TDV Server | 8.5.5 | 開発想定環境:Windows Server 2019環境で実行 本番想定環境:CentOS7環境で実行 |
TDV Studio | 8.5.5 | Windows Server 2019環境で実行 |
前提
この記事は、以下の条件を前提としています。
- TDV Server、TDV Studio、ウェブブラウザが実行可能なWindows OS の開発環境でTDV Server から Facebookへの接続確認および
OAuthSettings.txt
を作成 -
OAuthSettings.txt
を本番環境を想定したLinuxOSにTDV Server実行環境に配置することで、TDV Server (Linux) から Facebookへ接続
開発想定環境(Windows)における作業
最新版のFacebookアダプタインストール
CData社のページより最新版のFacebookアダプタをダウンロードし、<TDVインストールフォルダ>\bin
にあるserver_util
を以下のように実行してインストールします。
既存のFacebookアダプタをアンデプロイ
server_util -server <hostname> [-port <port>] -user <user> -password <password> -undeploy -version 1 -name Facebook
コマンド実行例:
C:\Program Files\TIBCO\TDV Server 8.5\bin>server_util -server localhost -user admin -password tibco123 -undeploy -version 1 -name Facebook
最新のFacebookアダプタをデプロイ
server_util -server <hostname> [-port <port>] -user <user> -password <password> -deploy -package <unzipped_file_location>\tdv.facebook\tdv.facebook.jar
コマンド実行例:
C:\Program Files\TIBCO\TDV Server 8.5\bin>server_util -server localhost -user admin -password tibco123 -deploy -package ..\adapter\TibcoDVAdapter\tdv.facebook\tdv.facebook.jar
TDV Serverサービス再起動
TDV Serverサービスを再起動します。
カスタムアプリ作成
Meta for Developers にて OAuth2.0用のカスタムアプリを作成します。
アプリタイプはなしを選択します。
任意のアプリ名を追加し、アプリを作成します。
アプリIDとapp secretが付与されているので、それらの値を確認し、メモ帳などに控えておきます。
商品を追加をクリックしてFacebookログインを追加します。
クイックスタートが表示されますが、これ以上は何もしません。
Facebookログインの有効なOAuthリダイレクトURIを設定します。
この記事では、https://localhost:33333/
を設定します。
この時点でアプリごとのトークンをアクセストークンツール - Meta for Developersで確認すると、Sample App for TDVにはApp Tokenしかありません。
データソース設定
開発想定環境(Windows)上のTDV StudioからTDV Server (localhost)に接続し、Facebookアダプタを使用してデータソースを設定します。
以下のように各プロパティを設定します。
項目 | 内容 |
---|---|
Initiage OAuth | GETANDREFRESH |
OAuth Client Id | アプリID |
OAuth Client Secret | app secret |
OAuth Settings Location | デフォルト値でも問題ありませんが、本記事では便宜上C:\facebook\OAuthSettings.txt に変更しています。 |
Callback URL | https://localhost:33333/ |
Scope | Facebookから取得したいデータの内容に応じて任意のスコープを設定します。 本記事では user_posts, pages_manage_engagement, pages_manage_posts を設定します。 |
この時点で一度Studioを閉じます。
TDV Serverをコンソールから起動
TDV Serverサービスを一度停止させ、コンソールから再度起動します。
この作業は、本記事の冒頭でも言及したとおり、TDV Server、TDV Studioが同じマシン上に存在することが前提となります。
一度TDV Serverサービスのみを停止させます。
次に、管理者権限でコマンドプロンプトを起動し、<TDV Severインストールフォルダ>\bin
に移動してから以下のコマンドを実行します。
composite_server.bat run
実行すると、以下の例のようにTDV Serverが起動します。
コマンドは終了せずに実行中のままにしておきます。
C:\Program Files\TIBCO\TDV Server 8.5\bin>composite_server.bat run
(省略)
Starting the TIBCO Data Virtualization Server
停止させたい場合は、Ctrl + C で停止させることができます。
接続テスト
この状態で再度TDV Studioで立ち上げ直したTDV Server (localhost)にログインし、先ほどのデータソースを開き、接続テストをクリックします。
すると、ブラウザが起動し、facebookのページが開くので、ログインします。
確認画面が表示されるので、○○としてログインをクリックします。
アプリからのアクセスを許可するページを選択し、次へをクリックします。
完了をクリックします。
アプリがFacebookにリンクされたことを確認し、OKをクリックします。
認可が成功することを確認します。
上記のページに遷移する前に警告画面が出る場合は、詳細設定などからアクセスを継続する必要があります。
この時点で、TDV Studio上でFacebookに正常に接続できていることを確認します。
OAuth Setings Locationに指定したパスに OAuthSettings.txt
が作成されていることも確認します。
この時点でアプリごとのトークンをアクセストークンツール - Meta for Developersで確認すると、Sample App for TDVにUser Tokenが作成されています。
トークンの詳細は以下のとおりです。
イントロスペクト
リソースの追加/削除…をクリックしてイントロスペクトを行います。
データ確認
例として、Postsテーブルから以下のようにデータを取得できます。
取得された投稿はFacebookでは以下のように確認できます。
ビジネスページのLikesCountは以下のようにパッケージクエリを実行することで取得できます。
このアダプタは Facebook Graph API の上に構築されており、LikesCount(いいね!数)をはじめとしていくつかのデータについてはビジネスページからしか取得できないように設計されています。
本番想定環境(Linux)における作業
本番環境を想定したLinux版のTDV ServerからもFacebookに接続します。
OAuthSettings.txtアップロード
開発想定環境(Windows)で作成された OAuthSettings.txt
を本番環境を想定したLinux版のTDV Serverにアップロードします。
本記事では、/home/tibco/OAuthSettings.txt
にアップロードします。
最新版のFacebookアダプタインストール
開発想定環境と同様に、CData社のページより最新版のFacebookアダプタをダウンロードし、<TDVインストールフォルダ>/bin
にあるserver_util
を以下のように実行してインストールします。
既存のFacebookアダプタをアンデプロイ
server_util -server <hostname> [-port <port>] -user <user> -password <password> -undeploy -version 1 -name Facebook
コマンド実行例:
./server_util.sh -server localhost -port 9400 -user admin -password tibco123 -undeploy -version 1 -name Facebook
最新のFacebookアダプタをデプロイ
server_util -server <hostname> [-port <port>] -user <user> -password <password> -deploy -package <unzipped_file_location>/tdv.facebook/tdv.facebook.jar
コマンド実行例:
./server_util.sh -server localhost -port 9400 -user admin -password tibco123 -deploy -package /home/tibco/work/tdv.facebook/tdv.facebook.jar
インストールに成功すると、以下のように出力されます。
Listening for transport dt_socket at address: 8005
Success
TDV Serverサービス再起動
TDV Serverサービスを再起動します。
sudo systemctl status cis.server
データソース設定
任意のWindows環境において動作するTDV Studioから本番想定環境(Linux)のTDV Serverに接続し、Facebookアダプタを使用してデータソースを設定します。
以下のように各プロパティを設定します。
項目 | 内容 |
---|---|
Initiage OAuth | GETANDREFRESH |
OAuth Client Id | アプリID |
OAuth Client Secret | app secret |
OAuth Settings Location | Linux環境におけるOAuthSettings.txt のパス本記事では /home/tibco/OAuthSettings.txt とします。 |
Scope | Facebookから取得したいデータの内容に応じて任意のスコープを設定します。 本記事では user_posts, pages_manage_engagement, pages_manage_posts を設定します。 |
接続テスト
接続テストボタンをクリックし、Facebookに正常に接続できることを確認します。
この後はイントロスペクトを実施し、開発想定環境(Windows)と同様にデータが取得できることを確認します。