最近Androidで一部のサイトのツイートボタンを押したら「入力した単語の検索結果はありません」というエラーとともに前の画面に戻されシェアに失敗することがある。この件について軽く調査・検証してみる。
注意: 2022/12/30 時点の検証なのでまた仕様は後ほど変わる可能性が大いにあります。
いつ頃から発生しているのか
この文言そのままでツイッターを検索してみる。
twitter.com
見たところ 2022/12/16 あたりでシェアしようとしてこの表示がでるとつぶやいている人がいます。これより前にこのエラーを見てる人もいますが、また別の原因のようです(ユーザページを開こうとしてこれが表示されるなど)。具体的にいつからというのはここからはわからないが、2022年12月から頻発してそうということはわかります。
いくつかのパターンのツイートボタンを埋め込んで試す
ブログにはHTMLが書けるのでこの場で試してみようと思います。
公式ドキュメント通りのツイートボタン
まずは今現在 Guides | Docs | Twitter Developer Platform に載っている記述方法のままツイートボタンを作ってみます。
<a class="twitter-share-button" href="https://twitter.com/intent/tweet?url=<ここにURL>&text=<ここにテキスト>"> Tweet</a>
上記ボタンをAndroidからタップしてみる→問題なくシェアできますね。
/intent/tweet ではなく /share を使うように変更
どうやら /share?url=...
みたいな形式になっていると問題になるという噂があるので試してみます。元の例のHTMLの href
内のURLのみ変更します。
<a class="twitter-share-button" href="https://twitter.com/share?url=<ここにURL>&text=<ここにテキスト>"> Tweet</a>
class名を変更する
ドキュメントの例では twitter-share-button
というclassが a
タグについていますが、ツイートボタンの見た目をカスタマイズしているサイトはここを指定してなかったり何かしら変更を加えていることがある気がします。
今回は試しに以下のように class
は消してしまって、その場で適当なスタイルを当ててみます。URLは /intent/tweet
のままです。
<a style="background-color: aqua;" href="https://twitter.com/intent/tweet?url=<ここにURL>&text=<ここにテキスト>"> Tweet</a>
見た目は素朴ですが問題なくAndroidでシェアできますね。
では同様の形で今度はURLを /share
にします。
<a style="background-color: aqua;" href="https://twitter.com/share?url=<ここにURL>&text=<ここにテキスト>"> Tweet</a>
Androidからのシェアに失敗しました!
わかったこと
- 恐らく2022年12月頃からTwitterのツイートボタン周りの仕様が変わった
- 公式ドキュメント通りの実装であればシェアはできる
- 公式ドキュメントには
twitter.com/share?url=...
みたいな形式のURLは今は紹介されていない- https://twitter.com/share にアクセスすると https://twitter.com/intent/tweet?url= にリダイレクトされます
twitter.com/share?url=...
を使っている場合でもtwitter-share-button
class が付与されていれば2022年現在は問題なく動いてはいそう- 何はともあれ今はドキュメントで紹介されている方法になるべく揃えられると良さそう
https://twitter.com/intent/tweet?url
を使う- HTMLの構造をなるべく崩さない
この件についてはひとまずフォーラムにも書いてみました。
Share button using /share link not working on Android ( /intent/tweet works ) - Publisher Tools / Twitter for Websites - Twitter Developers