Я использую кнопку общего доступа Twitter «Создай свою собственную кнопку твита» (https://dev.twitter.com/docs/tweet-button).
В документации сказано, что мне нужно использовать параметры запроса для передачи параметров.
ПРОБЛЕМА: Твиттер неправильно кодирует текстовый параметр, когда я передаю ему строку в кодировке URL. Запятая (,) отображается как% 252C в сообщении твита. Другие символы также неправильно закодированы.
Я использую PHP url encode (http://php.net/manual/en/function.urlencode.php), чтобы подготовить строку для вызова.
$text = urlencode("I just backed ". $project->getTitle().", an amazing new mobile app, on appbackr, where anyone can back mobile apps");
Тогда я создаю твиттер-ссылку:
'http://www.twitter.com/share?url='.urlencode($projectUrl).'&via='.$via.'&text='.$text.'&related='.$user->getTwitterProfileName()
Последний звонок в твиттере:
http://www.twitter.com/share?url=http%3A%2F%2Flocalhost%2Fapp%2Fbig-top-ballet&via=appbackr&text=I+just+backed+Big+Top+Ballet%2C+an+amazing+new+mobile+app%2C+on+appbackr%2C+where+anyone+can+back+mobile+apps&related=philippberner
Как только страница открывается в браузере (Chrome и Firefox), твиттер перенаправляет URL-адрес на:
https://twitter.com/intent/tweet?related=philippberner&text=I+just+backed+Big+Top+Ballet%252C+an+amazing+new+mobile+app%252C+on+appbackr%252C+where+anyone+can+back+mobile+apps&url=http%253A%252F%252Flocalhost%252Fapp%252Fbig-top-ballet&via=appbackr
В окне твита отображается следующее сообщение:
Я только что поддержал Big Top Ballet% 2C - потрясающее новое мобильное приложение% 2C на appbackr% 2C, где каждый может поддержать мобильные приложения через @ appbackr
Преобразует Топ + Балет% 2C + + удивительный в Топ + Балет% 252C + в + потрясающий . Запятая отображается правильно, когда я вручную изменяю% 252C на% 2C в твиттер-URL.