2011-06-16 78 views
3

我正在玩Facebook Graph API,我面临一个问题 - 我找不到任何方式如何张贴到一些HTML代码墙or新行。它是如何完成的? 这里是我的代码Facebook Graph API - 如何发布到墙上,换行?

<?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>"; 
} 
?> 

我怎么能这样做呢?

+0

这个)。 – 2011-06-17 12:14:22

+0

我之前编辑过它,真实代码长度超过32个字符 – genesis 2011-06-17 12:16:57

+0

好吧,不知道他们在每种情况下都必须是32个字符长度:) – 2011-06-17 12:19:24

回答

4

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

为了安全起见,Facebook非常清理所有墙壁/配置文件内容。

+0

嗯,那很糟糕。但是像这样的一些应用程序 - http://lulzimg.com/i23/18cd3a.png包含链接。怎么样 ? – genesis 2011-06-18 16:04:30

+1

有很多方法可以将链接导入到Feed中。但是你必须使用Facebook的数据结构。我的猜测是他们正在使用帖子的“属性”属性。这会给你一个链接列表,每个链接在一个新的行。 http://developers.facebook.com/docs/reference/dialogs/feed/ – 2011-06-19 19:34:36

2

尽管所有的东西都在之前关于墙贴文中换行符的问题的答案中说过 - 我从来没有在使用PHP发布帖子时使用转义字符\n有任何问题。

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

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

D'哦!

6

This Works。

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

哇感谢的人! – 2013-12-26 23:39:06

+0

哈哈。我们都在寻找html答案和Facebook的花花公子,按回车,我们会尊重。像魅力一样工作。谢谢! – 2017-12-11 19:08:50

0

把这个

<中心> < /中心>

到您想要打破行

例如:

一号线<中心> < /中心> 2号线<中心> < /中心> 3号线

注意:没有空格前后<>

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); 
0

换行符(ASCII码10)的伎俩。

1

这是您的解决方案%0A请将其插入文本,它将作为一个换行符:)你可能想要删除从代码示例中的API /密钥(不知道是否有人能做到任何事