stefafafan の fa は3つです

"すてにゃん" こと id:stefafafan のブログです

AndroidでTwitterシェア時に「入力した単語の検索結果はありません」というエラーが返ることがある件

最近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>

上記ボタンをAndroidからタップしてみる→問題なくシェアできますね。*1

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>


Tweet

見た目は素朴ですが問題なくAndroidでシェアできますね。

では同様の形で今度はURLを /share にします。

<a style="background-color: aqua;"
  href="https://twitter.com/share?url=<ここにURL>&text=<ここにテキスト>">
Tweet</a>


Tweet

Androidからのシェアに失敗しました!

わかったこと

  • 恐らく2022年12月頃からTwitterのツイートボタン周りの仕様が変わった
  • 公式ドキュメント通りの実装であればシェアはできる
  • 公式ドキュメントには twitter.com/share?url=... みたいな形式の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

*1:twitter-share-button classの効果で最終的に /intent/tweet の形式に展開されているように見える