Facebook чат Api и смайлики
Мы внедрили приложение для iphone, которое использует чат Facebook, частично через xmpp и частично через api graph facebook.
Все хорошо, пока не доходит до смайликов. Когда мы вводим смайлик на iPhone, мы получаем правильный смайлик на нашем дисплее.
Но сообщение, которое мы получаем от facebook, - это еще одна escape-последовательность, которую мы отправляем на facebook через xmpp.
Вот пример: мы отправляем следующий xml через xmpp:
<message type="chat" to="-someFacebookID@chat.facebook.com"><body></body></message>
Когда мы вспоминаем это сообщение из Facebook, мы получаем следующее:
{
"author_id" = someID;
body = "\Uf637";
"created_time" = 1351607849;
"message_id" = "someID_41";
"thread_id" = someID;
}
Вот наше FQL-заявление для сообщений:
@"SELECT message_id, author_id, thread_id, created_time, body FROM message WHERE thread_id = %@"
Но почему фейсбук конвертирует смайлик, который корректно отображается в фейсбук-чате на сайте? Есть идеи по этой проблеме?
С уважением, Даниэль
1 ответ
Возвращенный текст (например, "\Uf637" в вашем примере) - это представление смайлика в Юникоде. База данных Facebook не хранит смайлики в их полной форме, они преобразуются в юникод и возвращаются в форму смайликов при отображении в приложениях Facebook. Вам, вероятно, придется делать то же самое в своем собственном приложении при использовании API чата (для всех найденных строк, похожих на смайлики юникода, преобразуйте их в настоящий смайлик). Вот полный список кодов Unicode с соответствующими им символами смайликов: http://www.unicode.org/charts/PDF/U1F600.pdf