ruskar
@ruskar
Conflict Intelligence Team

PHP: постинг в твиттер, вычисление подписи?

Встроил в сайт авторизацию через твиттер (использую библиотеку Twitter-async от Jaisen Mathai), теперь хочу чтобы пользователь при изменении профайла на сайте постил автоматом в свой твиттер сообщение.



Но тут возникает проблема: русские сообщения просто не отправляются. Точнее вся проблема в том (как я понимаю), что неправильно вычисляется подпись запроса. Погуглил — у многих такая же проблема, все кивают в сторону UTF-8 символов.



Посмотрел исходники библиотеки, но там, по идее, всё нормально, каждый параметр обрабатывается так:

public function encode($string)<br>
{<br>
	return rawurlencode(utf8_encode($string));<br>
}<br>




Пробовал также заменить на:

public function encode($string)<br>
{<br>
	return rawurlencode(iconv('windows-1251', 'UTF-8', $string));<br>
}<br>




тоже не помогло. Пробовал и другие библиотеки (в частности TmhOAuth by Matt Harris) — ситуация полностью аналогичная.



Если это важно, то библиотеки встраивал в Kohana 3.2



Куда копать, где может быть проблема?
  • Вопрос задан
  • 3517 просмотров
Пригласить эксперта
Ответы на вопрос 5
@65520
Использую вот эту библу, русский язык ок. У меня везде юникод.
Ответ написан
Комментировать
dohlik
@dohlik
Штатные библиотеки Kohana пробовали? Тот же OAuth должен работать.
Ответ написан
Комментировать
dali
@dali
длина сообщения как проверяется? у меня записи были в utf-8, в итоге неправильно вычислялась длина сообщения, сообщения превышали лимит и не публиковались
Ответ написан
fozzy
@fozzy
1. Версия PHP?
2. Установлен ли extension mb_string
Если PHP < 5.3.10 и есть mb_string используйте для подсчета длинны UTF-8 строки mb_strlen вместо strlen (пруф)
в 5.4 вроде исправлено.
Ответ написан
Комментировать
@galaxy
Хз, взял версию с гитхаба (Twitter-async от Jaisen Mathai) — тест сработал: twitter.com/#!/jmathai_test/status/190858746497470464
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы