1. ホーム
  2. twitter

[解決済み] クエリ文字列を含むURLをTwitterで共有する

2022-05-09 20:26:09

質問内容

メールにTwitterの共有リンクを貼ろうとしています。 電子メールのため、JavaScriptに頼ることができず、"Build Your Own"ツイートボタンを使用する必要があります。

例えば、Googleへのリンクを共有する場合。

<a href="http://www.twitter.com/share?url=http://www.google.com/>Tweet</a>

これは問題なく動作します。 問題は、URLにクエリ文字列がある場合です。

<a href="http://www.twitter.com/share?url=http://mysite.org/foo.htm?bar=123&baz=456">Tweet</a>

クエリ文字列を含むURLは、TwitterのURL短縮サービスであるt.coを混乱させます。これを様々な方法でURLエンコードしてみましたが、何もうまくいきません。 一番近いのは、この方法です。

<a href="http://www.twitter.com/share?url=http://mysite.org/foo.htm%3Fbar%3D123%26baz%3D456">Tweet</a>

ここでは、クエリ文字列のみをエンコードしています。 このようにすると、t.coはURLの短縮に成功しますが、短縮されたリンクをたどると、エンコードされたURLに移動してしまいます。 なるほど http://mysite.org/foo.htm%3Fbar%3D123%26baz%3D456 が表示され、ブラウザでは次のようなエラーが発生します。

Not Found

要求されたURL /foo.htm?bar=123&baz=456 は、このサーバーで見つかりませんでした。

この問題をどう解決すればいいのか、途方に暮れています。

編集する。 Re: onteria_

URLを全てエンコードしてみたのですが、TweetにURLは表示されません。

どのように解決するのですか?

を使用することで解決できます。 https://twitter.com/intent/tweet 代わりに http://www.twitter.com/share . を使用しています。 intent/tweet 関数を使えば、URL全体をURLエンコードするだけで、魅力的に動作します。

https://dev.twitter.com/web/intents