Facebook图形API-如何张贴到墙上,与新的行


Facebook Graph API - How to post to wall, with new lines?

我正在玩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)起作用。