Keynoteプレゼンに合わせて予約した内容を自動ツイートする方法

Keynoteでプレゼンテーションしている時に、進行する内容に合わせた内容を、自動でツイートできたらいいと思いませんか?ライブイベントの露出は、拡散にとって非常に重要ですよね。

それが、「Keynote Tweet」というAppleScriptと、twurlというコマンドです。設定には少し手間が掛かりますが、要点をタイミングよくまとめてくれる、ファンや知人、部下がいなくても :'( 何とかなります。

この方法はこんな人向け

  • MacBook Pro/Airで、Keynoteを使ってプレゼンする。
  • 進行中のネタをリアルタイムに、自動でツイートして、拡散に繋げたい。
  • システム設定やTwitterアカウントの設定を自分で弄れる権限がある。
  • ツイートの内容を自分でコントロールしたい・していい。
  • ツイートの代役を任せられる人がいない。

今回の環境

  • macOS Catalina 10.15.2/Mojave 10.14.6(管理者権限)
  • Keynote 9.2.1/9.2
  • Ruby 2.7.0
  • Keynote Tweet 2.7.1(をカスタマイズ)
  • Twitterアカウント(管理者権限)
  • Twitterのカスタムアプリケーション(同上)

制限や注意点

  • macOSとKeynoteのみ。WindowsやiOS、PowerPointは対象外。
  • いろいろ弄るので、会社支給のデバイスやTwitterアカウント、セキュリティーポリシーなどでは、設定できない・動作しない可能性あり。
  • デバイス毎に、システムのコマンドを呼び出すパスが違うので、AppleScriptアプリケーションはデバイス別に用意する必要あり。
  • 今後も、Twitterの認証やmacOSのセキュリティー設定の変更で、影響を受ける可能性あり。

Twitterのカスタムアプリ+macOSのカスタマイズ+AppleScript+Keynote!

大まかな手順は以下の通りです。チャレンジする人は時間と気持ちにゆとりがあるときにどうぞ。ターミナルのコマンドに慣れていない人は、必ず、大人の人と一緒にやってネ。

Keynoteからツイートする仕組み
Keynoteからツイートする仕組み。結構なステップです。

○大まかな流れ

  1. 自動ツイート専用の、Twitterの開発者用アプリケーションを登録し、認証に必要な情報を生成する。
  2. システム環境を設定し、自動ツイートできるように認証を通す。
  3. Keynoteに連動する専用のAppleScriptを、カスタムアプリケーションとして作る。
  4. Keynoteの発表者ノートに文章やハッシュタグ、リンク先URLなどを入れてプレゼンする。
  5. AppleScriptをバックグラウンドで起動し、Keynoteでプレゼンすれば、自動ツイートされる!

Twitterの開発者ページで、カスタムアプリを作成する

では順番にやっていきましょう。まず、Twitterで、Keynoteからの自動ツイート専用の開発者用アプリケーション作ります。

  1. Twitterの開発者ページを表示させます。

Twitter Developers
https://developer.twitter.com/en/apps

  1. ウインドウ右上の[Create an app]ボタンをクリックし、カスタムのTwitterアプリを作ります。
Twitterの開発者用画面
Twitterの開発者用画面で、カスタムアプリを登録。
  1. 「App name」に、適当なアプリの名前を入れましょう。半角英数32文字以下ですが、このアプリを自分しか使わなければ、内容はそれなりで構いません。
  1. 同様に「Application description」にも、適当に概要を半角英数で10文字以上200文字以下で入力。「Website URL」も、自分のサイトやブログなどのURLを入力しておけばOKです。
  1. 今回、Twitterのサインインをそのまま、このカスタムアプリで使うので、「Enable Sign in with Twitter」をチェックします。
  1. 「Callback URLs」には、「Website URL」と同じURLを入れておきます。
Twitterのカスタムアプリの情報1
Twitterのカスタムアプリの情報1。それなりに埋めます。
  1. 「Tell us how this app will be used」は、このアプリの使用目的を書きます。Twitter社向けの説明として、最低100文字の説明が必須。私は以下のように書いたので、これをそのままコピー&ペーストしてもOKです。
This private custom app is for Tweet automatically from Apple Keynote presentation files on macOS devices.
Twitterのカスタムアプリの情報2
Twitterのカスタムアプリの情報2。入れられるところには記入を。
  1. [Create]ボタンをクリックすると、開発者用の規約が表示されます。再び表示された[Create]ボタンをクリックして同意し、アプリを作成します。
Twitterの開発者規約
Twitterの開発者規約に同意。
  1. アイコンは必要に応じて変更を。タブを「App details」から「Keys and tokens」に切り替えます。
  1. 暗号化された文字列キーによる「OAuth(オース)」認証のキーが表示されます。Consumer API keys(コンシュマーAPIキー)の「APIキー」と「APIシークレット」が表示されているので、これをコピーしてどこかに保存しておきます。
Twitterのカスタムアプリのキーとトークン
Twitterのカスタムアプリのキーとトークンは、大事にコピーして保存。
  1. 上に黄色いバナーで表示されているように、これから生成する「Access token(アクセストークン)」と「Access token secret(アクセストークンシークレット)」は、初回に一度しか表示されない仕様に変わりました。忘れてしまった場合は、再生成するしかないので、注意しましょう。
  1. [Create]ボタンをクリックし、生成された2つのキーもコピーして保存しておきます。また、「Access level」が「Read and write(読み書き)」になっていることも確認します。
コンシュマーキーとアクセストークン
コンシュマーキーとアクセストークン。無くしたら最悪!
  1. 一応、「Permissions」タブを確認しておくと以下の通り。ここは特に操作は必要ありません。これでTwitterのカスタムアプリの作成が終わりました。
Twitterのカスタムアプリのパーミッション
Twitterのカスタムアプリのパーミッション。読み書きが可能なことをチェック。

macOSからツイートできるように、必要な権限を与える

ここからしばらく、ターミナルの操作です。Macからtwurlというコマンドでツイートできるように設定…する前に、私の環境では、ディレクトリにアクセス権がなくエラーになったので、ここを参考にして設定を変更しました。

  1. Ruby環境のディレクトリに、必要なアクセス権を設定します。以下の情報を参考にさせてもらいました。Thanks 😉
  1. 改めて、Macからtwurlというコマンドでツイートできるように設定します。
gem install twurl
ターミナルでtwurlをインストール
ターミナルでtwurlをインストール。パスの書き込み許可もチェック!
  1. 以下のコマンドを実行します。
    the_key と the_secret には「アプリケーションの登録申請」をした後に発行された Consumer key と Consumer secret の文字列に差し替えて、returnキーを押します。
./twurl authorize --consumer-key the_key --consumer-secret the_secret
macOSでTwitterのキーとトークンを認証
macOSでTwitterのキーとトークンを認証。長いURLをコピー。
  1. 長いURLが表示されるので、https:// から version=1.0 のURLだけをコピーし、ブラウザーでアクセスします。
  1. Twitterの認証画面が表示されるので、[連携アプリを認証]ボタンをクリックします。
PINコード
PINコードはコレ。見逃しようがない!
  1. 7桁のPINコードが表示されるので、コピーします。
  1. ターミナルに戻って、最終行にPINコードをペーストし、returnキーを押します。「Authorization successful」と表示されたら、認証成功です。
  1. テストで、twurlを使ってツイートしてみます。ここまでできたら成功!
twurl -X POST "/1.1/statuses/update.json?status=this is a new Tweet sent using twurl"
macOSからテストツイート
macOSからテストツイートに成功!
  1. ツイートするスクリプトの参照先パスを、以下のコマンドで確認し、コピーしておきます。
which twurl

Keynote Tweet AppleScriptをカスタマイズして使う

次に、ここから使うのがmacOSのマクロ機能であるAppleScript。7年前のスクリプトが、地味にアップデートされていたので、作った方には感謝感謝です <3

  1. 以下URLを開き、スクリプトのテキストをコピーします。
    https://github.com/cogdog/Keynote-Tweet/blob/master/keynote-tweet-script.txt
  1. macOSのユーティリティ > スクリプトエディタを開きます。新しいスクリプトを作成し、コピーしたスクリプトをペーストすると、紫色で表示されます(私は、自分しか使わないとはいえ、表示を日本語にローカライズして内容も少し変えました)。
AppleScriptのコード
AppleScriptのコード。パスを変更するのはここ。
  1. 以下のコマンドの行を見つけ、/usr/bin/twurl 部分を、自分の環境に合わせて which twurl が呼び出していたパスに書き換えます。
do shell script "/usr/bin/twurl -d " & twitter_status & " /1.1/statuses/update.json"
  1. ハンマーの形をした[コンパイル]ボタンをクリックするとスクリプトが色分け・整形されます。
  1. [実行]ボタンをクリックすると、ダイアログボックスが表示されます。
Keynote Tweetのダイアログ1
Keynote Tweetのダイアログ1。ここに入れるのは、イベントのハッシュタグなど。
Keynote Tweetのダイアログ2
Keynote Tweetのダイアログ2。これも、基本的に自分しか見ません。
  1. 確認できたら、名前を付けてアプリケーションとして保存します。「ハンドラの実行後に終了しない」「実行専用」チェックボックスをチェックしておきます。
AppleScriptをアプリとして保存
AppleScriptをアプリとして保存。
カスタムAppleScriptアプリ
カスタムAppleScriptアプリは、この後で起動します。

ようやくKeynoteでプレゼン!

ここまで準備できて、やっとKeynoteです。

  1. Keynoteファイルを開き、「表示」メニューから「発表者ノートを表示」を選びます。
発表者ノートを表示
発表者ノートを表示。
  1. 発表者ノートで、[twitter]と[/twitter]タグの間に、ツイートしたい文章を書きます。ハッシュタグやアカウント(#や@も必要)、URLも入れられます。ただし、次の「Keynote Tweet」で入れたハッシュタグなども含めて、140文字を越えるテキストは無視されます。
Keynoteの発表者ノート
Keynoteの発表者ノートで、[twitter]と[/twitter]タグで囲むだけ。
  1. 先に作ったAppleScript「Keynote Tweet」を起動します。ここでも、ハッシュタグやアカウント名を入力できますが、ここには、イベントで使うハッシュタグだけを登録した方がいいでしょう。ハッシュタグは、ツイートを後からまとめ(られ)るのにも便利です。
  1. ダイアログボックスが表示されるので、[始める]ボタンをクリックします。これで「Keynote Tweet」は、Keynoteの再生待ちの状態になりました。
  1. Keynoteスライドを「再生」すると、バックグラウンドで自動ツイートされるので、確認します。クライアントアプリケーションの名前には、Twitterの開発者用アプリケーションで付けた名前が表示されます。
Keynoteから自動ツイート
Keynoteから自動ツイート。やっと成功!

使う時の注意点

  • 先に、イベントで使うハッシュタグを決めて、ツイートできる最大文字数を確認しましょう。また、Keynoteの発表者ノートには文字数チェック機能がないので、別のエディターなどで文字数を確認しながら書いたテキストを、コピー&ペーストするのが確実。
  • スライドをチェックするときは、「Keynote Tweet」さえ起動しなければ、ツイートされることはありません
  • Keynoteでファイルを再生する前であれば、Keynoteよりも後から「Keynote Tweet」を起動してもOKです。
  • 今回の設定では、AppleScriptを起動するたびに、アクセス許可を確認するダイアログボックスが表示されます。プレゼンが始まる前に、しれっと起動しておくのがスマートか。
  • プレゼンが終わって質疑応答を受けるときに、もう一度Keynoteファイルを開くことを考えて、「Keynote Tweet」だけはすぐに終了しておきましょう。起動したままだと、同じツイートが2回投稿されてしまいます。
  • プレゼンを途中で止めてデモをする予定があれば、再開した後のスライドを1枚複製しておいて、発表者ノートからツイートを抜いておけばOK

Enjoy Happy Tweeting! ?