第27章 Twitter への接続

インテグレーションで Twitter に接続するための主なステップは次のとおりです。

Fuse Online 環境から Twitter へのアクセスを承認するため、Twitter 開発者アカウントが必要です。Twitter 開発者アカウントを持っていない場合は、https://apps.twitter.com にアクセスし、Twitter にログインしてから Apply for a developer account をクリックします。you@gmail.com のような個人アドレスではなく、me@redhat.com のような企業のアドレスを提供すると、迅速に開発者アカウントを取得できます。

27.1. Fuse Online を Twitter クライアントアプリケーションとして登録

インテグレーションで Twitter に接続するには、最初に Fuse Online 環境を Twitter にアクセスできるクライアントアプリケーションとして登録する必要があります。これにより、Twitter に接続するインテグレーションをいくつでも作成することができます。そのため、特定の Fuse Online 環境を 1 度だけ Twitter に登録する必要があります。

Fuse Online を Twitter クライアントアプリケーションとして登録できるのは、Fuse Online 環境ごとに 1 回のみです。しかし、各 Twitter コネクションは同じ登録を使用しますが、異なるユーザークレデンシャルを使用することができます。

前提条件

Fuse Online にログインしている必要があります。Fuse Online にアクセスできる URL は、Red Hat Fuse Online Evaluation プログラムのウェルカムメールメッセージにあります。

手順

  1. Fuse Online で以下を行います。

    1. 左側のパネルで Settings をクリックします。
    2. Settings ページで、上部付近にあるコールバック URL の右側で Copy Callback URL をクリックし、Fuse Online インストールのコールバック URL をクリップボードにコピーします。この手順の後半でこの URL が必要になります。
    3. Twitter エントリーをクリックし、Consumer API Key および Consumer API Secret Key フィールドを表示します。
  2. 別のブラウザータブで、Twitter 開発者アカウント にアクセスし、必要な場合はログインしてから以下を行います。

    1. 右上で、開発者プロジェクトの名前の横にある下向きのキャレットをクリックし、Apps をクリックします。
    2. 右上の Create an app をクリックします。
    3. App name フィールドに My Fuse Online Client などの名前を入力します。
    4. Application description フィールドに、For leveraging tweets などのヒントを入力します。
    5. Website URL フィールドに、この手順の最初でコピーした URL を貼り付け、URL の最後にある api/v1/credentials/callback を削除します。
    6. Enable Sign in with Twitter を選択します。
    7. Callback URLs フィールドに URL を再度貼り付けます。https://app-proj912876.7b63.fuse-ignite.openshiftapps.com/api/v1/credentials/callback のようになるはずです。

      続くフィールドをいくつかスキップします。

    8. Tell us how this app will be used には説明を 100 文字以内で追加する必要があります。This is a demo application so that I can evaluate how to integrate Twitter with my enterprise applications. をコピーし、貼り付けてもいいでしょう。
    9. Create をクリックします。
    10. 再度 Create をクリックし、開発者規約を読んだことを確認します。
    11. 作成したアプリのページ上部にある Keys and tokens タブをクリックします。
    12. コンシューマー API キーをコピーします。
  3. Fuse Online の Settings ページに戻り、Twitter のコンシューマー API キーを Fuse Online の Twitter Consumer API Key フィールドに貼り付けます。
  4. Twitter の Keys and tokens タブに戻り、コンシューマー API シークレットキーをコピーします。
  5. Fuse Online の Settings ページに戻り、Twitter のコンシューマー API シークレットキーを Fuse Online の Twitter Consumer API Secret Key フィールドに貼り付けます。
  6. Save をクリックします。
  7. Twitter エントリーをクリックして折りたたみます。

27.2. Twitter コネクションの作成

Twitter からデータを取得するインテグレーションを作成するには、最初に Twitter コネクションを作成する必要があります。Twitter コネクションを作成した後、任意の数のインテグレーションで使用できます。

前提条件

  • Fuse Online にログインしている必要があります。Fuse Online にアクセスできる URL は、Red Hat Fuse Online Evaluation プログラムのウェルカムメールメッセージにあります。
  • Fuse Online がウェブブラウザーで開かれている必要があります。
  • Fuse Online 環境が Twitter にアクセスできるアプリケーションとして登録されている必要があります。
  • Fuse Online の Settings ページで登録した後に受け取った Twitter コンシューマー API キーおよびコンシューマー API シークレットキーが追加済みである必要があります。

手順

  1. Fuse Online の左パネルで Connections をクリックし、利用可能なコネクションを表示します。
  2. Create Connection をクリックし、利用できるコネクターを表示します。コネクターは、1 つ以上のコネクションを作成するために使用するテンプレートです。
  3. Twitter コネクターをクリックします。
  4. Connect Twitter をクリックし、Twitter の承認ページを表示します。承認ページを表示するには Twitter にログインする必要があることがあります。

    Connect Twitter が表示されない場合、Fuse Online 環境は Twitter クライアントアプリケーションとして登録されていません。「Fuse Online を Twitter クライアントアプリケーションとして登録」を参照してください。Twitter コネクションの作成時に Fuse Online 環境が Twitter クライアントアプリケーションとして登録されていない場合、Fuse Online は承認情報を要求する複数のフィールドを表示します。これらのフィールドに値を入力して Twitter コネクションを作成することはできますが、推奨されません。

  5. Authorize app をクリックし、Fuse Online に戻ります。
  6. Name フィールドに、このコネクションを別のコネクションと区別するために使用する名前を入力します。たとえば、Twitter Connect 1 を入力します。
  7. Description は任意のフィールドで、このコネクションに関する便利な情報を入力します。たとえば、Sample Twitter connection that uses my Twitter login credentials. を入力します。
  8. Save をクリックし、作成したコネクションが利用可能になったことを確認します。上記の例の名前を入力した場合は、インテグレーションに追加できるコネクションとして Twitter Connect 1 が表示されます。

27.3. Twitter コネクションを追加してインテグレーションの実行をトリガー

シンプルなインテグレーションでは、特定のツイートやダイレクトメッセージを見つけたときにインテグレーションの実行をトリガーする Twitter コネクションを最初のコネクションとすることができます。

前提条件

  • Twitter コネクションが作成されている必要があります。
  • シンプルなインテグレーションを作成または編集することになります。Fuse Online は最初のコネクションを選択するよう要求します。

手順

  1. インテグレーションを開始する Twitter コネクションをクリックします。インテグレーションが Twitter に接続するために選択したコネクションを使用する場合、Fuse Online はそのコネクションに定義されたクレデンシャルを使用します。
  2. コネクションが実行するアクションを選択します。インテグレーションに追加した Twitter コネクションは選択したアクションのみを実行します。

    • Mention は、コネクションのアクセスが許可されている Twitter アカウントの Twitter ハンドルが含まれるツイートを Twitter で監視します。コネクションはそのようなツイートを見つけると Fuse Online に返し、インテグレーションの実行がトリガーされます。
    • Retrieve は、Twitter コネクションのアクセスが許可されている Twitter アカウントに送信されるダイレクトメッセージを Twitter で定期的にポーリングします。コネクションはそのようなメッセージを見つけると Fuse Online に返し、インテグレーションの実行がトリガーされます。
    • Search は、指定した条件と一致するツイートを Twitter で定期的にポーリングします。コネクションはそのようなツイートを見つけると Fuse Online に返し、インテグレーションの実行がトリガーされます。
  3. 選択したアクションを設定します。

    • Mention を設定する必要はありません。
    • Retrieve

      • Count のデフォルトは 100 で、内部の動作に影響するこの値を変更する必要はありません。パフォーマンスが低下する可能性があるため、50 未満の値を設定しないでください。

        Retrieve アクションは、過去 30 日以内に受信された返送されていないすべてのダイレクトメッセージを常に返します。Ignore direct messages previously found を選択しないと、Retrieve アクションは過去 30 日以内に受信されたすべてのメッセージを返します。

      • Delay はポーリングの間隔です。Twitter はレート制限を適用するため、ポーリングを過剰に行わないようにします。デフォルトの間隔は 5 秒です。
      • Ignore direct messages previously found を選択すると、新しいメッセージのみが返されます。
    • Search

      • Delay はポーリングの間隔です。Twitter はレート制限を適用するため、ポーリングを過剰に行わないようにします。デフォルトの間隔は 5 秒です。
      • Ignore tweets previously found を選択すると、新しいツイートのみが返されます。
      • Query は、コネクションが返すツイートを指定する Twitter 形式の検索式です。以下の表は、入力可能な内容を示しています。詳細は 検索演算子に関する Twitter ドキュメント を参照してください。

        クエリー

        結果

        My Product

        My および Product が両方含まれるツイートを取得しますが、My Product が必ず含まれるとは限りません。

        "My Product”

        My Product のインスタンスが含まれるツイートを取得します。

        My OR Product

        My または Product のインスタンス、またはそれぞれのインスタンスが含まれるツイートを取得します。

        My -Product

        My のインスタンスが含まれ、Product のインスタンスが含まれないツイートを取得します。

        #MyProduct

        MyProduct ハッシュタグが含まれるツイートを取得します。

  4. Next をクリックしてコネクションをインテグレーションに追加します。

結果

インテグレーションに最初のコネクションが追加され、Fuse Online は最後のコネクションを選択するよう要求します。

27.4. ダイレクトメッセージを送信する Twitter コネクションの追加

Twitter ユーザーにダイレクトメッセージを送信する Twitter コネクションをフローの途中に追加したり、シンプルなインテグレーションを終了するために追加することができます。ダイレクトメッセージは、指定ユーザーのみに送信されるプライベートメッセージのことです。

前提条件

  • Twitter コネクションが作成されている必要があります。
  • フローを作成または編集することになり、Fuse Online でインテグレーションに追加するよう要求されます。Fuse Online は、インテグレーションを追加するよう要求するか、シンプルなインテグレーションでは最後のコネクションを選択するよう要求します。

手順

  1. Add to Integration ページで、Twitter コネクションを追加する場所のプラス記号をクリックします。
  2. インテグレーションに追加する Twitter コネクションをクリックします。インテグレーションが Twitter に接続するために選択したコネクションを使用する場合、Fuse Online はそのコネクションに定義されたクレデンシャルを使用します。
  3. Send アクションを選択します。
  4. Default Message フィールドには、データマッパーステップが前のステップからこの Twitter コネクションにダイレクトメッセージをマップしない場合にコネクションが送信するメッセージを入力します。この Twitter コネクションの設定時にメッセージを入力する必要がありますが、前のステップからマップするメッセージはここで指定するメッセージよりも優先されます。
  5. User フィールドに、ダイレクトメッセージの宛先となるユーザーの Twitter ハンドルを入力します。たとえば、Aslan@Aslan はいずれも適切です。
  6. Next をクリックしてコネクションをインテグレーションに追加します。

結果

インテグレーションビジュアライゼーションの途中または最後にコネクションが表示されます。