我正在玩Facebook Graph API,我面临一个问题-我找不到任何方法来发布到带有一些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>";
}
?>
我该怎么做?
这很有效。
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' => ''));
不能在墙柱中包含任何标记或新行。您过去可以提供一些FBML标记来获得一些基本格式,但这被滥用了。如果你能包含html和新行,Facebook的个人资料就会开始看起来像MySpace的个人资料。
出于安全考虑,Facebook几乎对所有墙/个人资料内容进行了消毒。
这是您的解决方案%0A
将其插入文本中,它将充当换行符:)
尽管在回答之前关于墙帖中换行的问题时说了很多话,但在使用PHP发帖时,我从未遇到过使用转义符'n
的问题。
array('message'=> 'Trying to make new line here 'n <br /> Neither works', …
当然,如果您在PHP中使用单引号填充消息参数,''n意味着只有两个字符''和n–这些转义序列只有在使用双引号时才会被解释,这是绝对基本的PHP语法知识…
哦
放入此
<center><中心>
到你想断线的地方
例如:
line1<center></center>line2<center></中心>第3行
注意:<>前后没有空格
对于那些想要更新的人
我使用的是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)起作用。