Facebook Graph API - 如何使用新行发布到墙上?

时间:2011-06-16 18:18:16

标签: php facebook facebook-graph-api

我正在使用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>";
}
?>
我怎么能这样做?

7 个答案:

答案 0 :(得分:6)

这很有效。

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' => ''));

答案 1 :(得分:4)

您不能在墙上的帖子中添加任何标记或新行。您曾经能够提供一些FBML标记来获得一些基本的格式,但这被滥用了。如果您可以包含h​​tml和新行,Facebook个人资料将开始看起来像MySpace个人资料。

出于安全考虑,Facebook几乎清理所有墙/个人资料内容。

答案 2 :(得分:2)

尽管在回答之前关于墙上帖的换行符的问题时已经说过所有的内容 - 但在使用PHP发布帖子时,我只是使用转义字符\n时没有任何问题。

array('message'=> 'Trying to make new line here \n <br /> Neither works', …

当然,如果您使用单个引号在PHP中填充消息参数,\ n仅表示两个字符\和n - 这些转义序列仅在使用 double时解释引用,是绝对基本的PHP语法知识......

D'哦!

答案 3 :(得分:1)

这是您的解决方案%0A将其插入到您的文字中,它将作为换行符:)

答案 4 :(得分:0)

把这个

  

&LT;中心&gt;&lt; / center&gt;

到你要破线的地方

前:

LINE1&LT;中心&gt;&lt; / center&gt; line2&lt;中心&gt;&lt; / center&gt; line3

注意:&lt;之前和之后没有空格&GT;

答案 5 :(得分:0)

对于那些想要对此进行更新的人 我正在使用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);

答案 6 :(得分:0)

换行符(ASCII码10)可以解决问题。