Я играю с API-интерфейсом Facebook Graph, и я столкнулся с одной проблемой – я не могу найти способ публикации на стене с помощью HTML-кода or
новых строк. Как это можно сделать? Вот мой код
<?php include_once 'lib/facebook.php'; define("FACEBOOK_APP_ID", '10126'); define("FACEBOOK_API_KEY", '064ca1988b'); define("FACEBOOK_SECRET_KEY", '9afdf92114'); define("FACEBOOK_CANVAS_URL", 'http://apps.facebook.com/my_canv_app/'); if (isset($_GET['code'])){ header("Location: " . FACEBOOK_CANVAS_URL); exit; } $facebook = new Facebook(array('appId' => FACEBOOK_APP_ID, 'secret' => FACEBOOK_SECRET_KEY)); $user = $facebook->getUser(); $loginUrl = $facebook->getLoginUrl( array( 'scope' => 'email,publish_stream,user_birthday,user_location,user_about_me,user_hometown' ) ); if (!$user) { echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>"; exit; } try { $uid = $facebook->getUser(); $me = $facebook->api('/me'); $statusUpdate = $facebook->api('/me/feed', 'post', array('message'=> 'Trying to make new line here \n <br /> Neither works', 'cb' => '')); } catch (FacebookApiException $e) { echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>"; } ?>
как я мог это сделать?
Вы не можете включать какие-либо разметки или новые строки в столбиках. Раньше вы могли предоставить некоторую разметку FBML, чтобы получить некоторое базовое форматирование, но это стало злоупотреблять. Если вы можете включить html и новые строки, профили Facebook начнут выглядеть как профили MySpace.
Из-за соображений безопасности Facebook в значительной степени санирует весь контент на стене / профиле.
Это работает.
try { $uid = $facebook->getUser(); $me = $facebook->api('/me'); $statusUpdate = $facebook->api('/me/feed', 'post', array('message'=> 'Line 1 Line 2 Line 3 Line 4', 'cb' => ''));
Несмотря на все, что было сказано в ответах на предыдущие вопросы, касающиеся новых строк в стенных сообщениях – у меня никогда не возникало проблем с использованием escape-символа \n
при создании сообщений с использованием PHP.
array('message'=> 'Trying to make new line here \n <br /> Neither works', …
Конечно, если вы заполняете свой параметр сообщения в PHP с помощью одинарных кавычек, \ n означает только два символа \ и n – что эти escape-последовательности интерпретируются только при использовании двойных кавычек, это абсолютно базовое знание синтаксиса PHP …
D'о!
положи это
<center> </ center>
где вы хотите разбить линию
например:
line1 <center> </ center> line2 <center> </ center> line3
ПРИМЕЧАНИЕ: нет пробелов до и после <>
Для тех, кто хотел бы обновить это.
Я использую PHP SDK и \ n работает до тех пор, пока он заключен в двойные кавычки (""). Одиночные кавычки не будут работать.
Итак, я беру данные из крошечного ящика mce, и я делаю это:
$message = preg_replace("/<br \/>/","\n",$tiny_mce_message); // the \n must be in ""! $message = strip_tags($message); $this->message = utf8_encode($message);
Символ новой строки (код ASCII 10) выполняет трюк.
Это ваше решение %0A
вставьте его в текст, и оно будет действовать как разрыв строки 🙂