Я пытаюсь поместить ссылку для общего доступа в Twitter в электронное письмо. Поскольку это электронное письмо, я не могу полагаться на JavaScript и вынужден использовать кнопку «Создать свой собственный» для твита.
Например, отправка ссылки на 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-адреса со строками запроса сбивают с толку службу сокращения URL-адресов Twitter, 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
в адресной строке и получаю следующую ошибку в браузере
Не найдено
Запрошенный URL /foo.htm?bar=123&baz=456 не был найден на этом сервере.
Я не знаю, как решить эту проблему.
Изменить: Re: onteria_
I Пробовал кодировать весь URL. Когда я это делаю, в твите не отображается URL.
Я ссылаюсь на все методы.
Кодируют запрос, дважды быстрое решение.
const query = a=123&b=456;
const url = `https://example.com/test?${encodeURIComponent(encodeURIComponent(query),)}`;
const twitterSharingURL=`https://twitter.com/intent/tweet?&url=${url}`