Twitterで「ツイートされたらなんかする」を実装したい時

製作 プログラム

最終更新日:2018/12/12

ラムネグから一言:寝る前に読むとくだらなすぎて逆に寝れると好評なすごい適当なブログをこっちではじめてます.

「ツイートされたら」というイベント

ホームページに設置したフォローボタンとかツイートボタンが押されて、実際にツイートとかフォローされたときになんかしたい!

ウェブサイトを作ってるとこんな風に思う事もあると思います。

ツイッターにはそのための仕組みがありました。検索してみるとやり方を書いてある記事がたくさん見つかると思います。

でも、今現在(2018/12/12)その機能は使えないようになってます。

こんなソースコードについて話してます

ここで書いてる方法はツイッター公式サイトとかではjavascript APIとして紹介されている方法です。

こんな感じのコードなんですが、いろんなサイトで紹介されているのと同じだと思います。


twttr.events.bind(
  'tweet',
  function (event) {
    // Do something there
  }
);
  1. 「ツイートされたら」というイベント
  2. 今はただのクリックイベントになっている
  3. 仕様変更があった
  4. それでも「ツイートされたら」をキャッチしたい!

今はただのクリックイベントになっている

「ツイートされたら何かの処理を行いたい!」こんな風に〇〇されたら××、javascriptだとおなじみですよね。クリックされたら色を変える、とか画面をスクロールしたらメニューも動かすとか。

イベントを検知して処理を動かしてくわけなので、「ツイートされたら」というイベントがあるかどうかが大事になってくるわけです。

ツイッターも昔はAPIとして「ツイートされたら」っていうイベントをちゃんと作ってたようで、検索したときに出てくるやり方はこのときのやり方がもとになってます。

API自体は今もあるのですが、残念ながら今はイベントが発生するタイミングが変わってしまっています。

昔:

ツイートボタンクリック
実際にツイートする
ここでイベント発生

今:

ツイートボタンクリック
ここでイベント発生
実際にツイートする

ようはただのクリックイベントになってしまってます。

ツイッターの「ツイートしたら」は今はただの「クリックしたら」になっちゃってる

仕様変更があった

「ツイッター ツイート後 イベント」みたいなキーワードでいろいろ検索していると海外のフォーラムが見つかりました。

海外のフォーラムその1

海外のフォーラムその2

グーグルに翻訳してもらって読んでいくと、ツイッターのAPIは仕様変更されてしまったので「ツイートされたら」というイベントは使えなくなった、みたいな感じに書かれてます。

またツイッター公式のAPIの使い方ページにも、

Web Intentイベントは、アクションが完了した後ではなく、インタラクションが発生すると起動します。

て書かれてます。

Intentとかインタラクションとか元が英語なので横文字多すぎですが、たぶんクリックしてツイート画面が表示された段階でイベントが発生する、という事だと思います。

というわけで今現在「ツイートしたら何かする」というのは実装しづらいようになっています。

それでも「ツイートされたら」をキャッチしたい!

とはいうもののなかなか諦められるものじゃないハズ。「以前はできてたのに今はできません~。」はいそうですかとはなかなかスッキリできませんよね。

さっき紹介した海外フォーラムの回答欄にもあったのですが「twitterAPI」というものを使えば疑似的に実装はできそうです。

次の記事で紹介していきますね。

【おしらせ、というか完全なる宣伝】

文体がもうぜんぜん適当すぎてあれだけどものすごい自由に書いてるブログ「檸檬だくだく」もよろしく.寝る前に読める恐ろしくくだらないやつです.

こんなにも一ミリも目を引かれないタイトルを取り扱ってます: グラビアアイドルになるチャンス / 炭酸水サーバー・ザ儀式 / 超カンタン絶品カンパンレシピ /