使用php发布到Facebook页面

时间:2012-03-23 23:21:05

标签: php html facebook facebook-graph-api

我有一个发布到Facebook的脚本,但我在Facebook上发布数据方面存在问题。

因为这可能对其他人有帮助,所以这是完整的代码

<?php
require 'facebook.php';
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYHOST] = 0;
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = 0;

$pageId   = "XXXXXXXX";
$permSess = "XXXXXXXXXXXXXXXX";

$facebook = new Facebook(array(
    "appId" => "XXXXXXXXXX",
    "secret" => "XXXXXXXXXX",
    "cookie" => true
));

$page = $facebook->api("/{$pageId}");
?>

<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">

    <head>
        <title>Post to Page Wall</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
        />
        <meta name="description" content="Post to page's wall" />
        <style>
            body {
                font-family:'Lucida Grande', Verdana, Arial, sans-serif;
                background-color: #f2f2f2;
            }
            h1 a {
                text-decoration: none;
                color: #3b5998;
            }
            h1 a:hover {
                text-decoration: underline;
            }
            form {
                border: 1px solid #eee;
                padding: 20px;
                width: 550px;
            }
            textarea, select, input, label {
                width: 500px;
                border: 1px solid #ddd;
                height: 20px;
                clear: both;
                margin: 10px;
            }
            textarea {
                height: 100px;
            }
            label {
                border: none;
                font-weight: bold;
            }
            input#submit {
                width: 100px;
            }
        </style>
    </head>

    <body>
        <h1>Post to Friend's Wall</h1>
        <?php if(isset($_POST[ 'submit'])) { $link=$
        _POST[ 'link']; $message=$ _POST[ 'message']; $attachment=a rray($message,$link
        ); $rest=$ facebook->api(array( "uid" => $pageId, "method" => "stream.publish", "access_token"
            => $permSess, "message" => $message )); } ?>
            <form id="Wall" name="Wall"
            method="post">
                <label for="URL">URL:</label>
                <input id="link" name="link">
                <label for="Message">Message:</label>
                <textarea id="message" name="message"></textarea>
                <input type="submit" name="submit" id="submit" value="Send!">
            </form>
    </body>

</html>

问题:

我正在使用发布here的示例,并使用该示例在URL字段上提交的链接在Facebook上发布,就像您自己一样(使用图像和网站的描述)但使用我的代码我无法以同样的方式实现它。

On&#34; How can I post to the wall of a Facebook Fan Page using PHP and Open Graph API&#34;一些用户已经发布了答案,但在我的案例中不起作用。

我的代码和其他网站上的代码之间的差异是&#34; $ attachment&#34;部分代码

<?php
if (isset($_POST['submit'])) {
    $sendTo  = $_POST['friend'];
    $link    = $_POST['link'];
    $message = $_POST['message'];

    // all options: https://stackoverflow.com/questions/691425/how-do-you-post-to-the-wall-on-a-facebook-page-not-profile
    $attachment = array(
        'message' => $message,
        'link' => $link
    );

    if ($result = $facebook->api("/$sendTo/feed/", 'post', $attachment)) {
        $feedbackMessage = "Message sent to friend $sendTo";
    } else {
        $feedbackMessage = "Oops something went wrong";
    }
}
?>

所以......问题是如何正确地发布到Facebook页面而不会丢失使用我的脚本的任何好处或格式。

提前致谢

1 个答案:

答案 0 :(得分:3)

这会让你发布到Facebook页面并保留格式,我明白你的意思!

<?php 
if(isset($_POST['submit'])) {
            $link = $_POST['link'];
            $message = $_POST['message'];



$attachment = array(
        'access_token' => $permSess,
        'message' => $message,
        'link' => $link

    );
if(    $result = $facebook->api(
        "/".$pageId."/links",
        'post',
        $attachment
    )){
                $feedbackMessage = "Message sent to friend $sendTo";
            } else {
                $feedbackMessage = "Oops something went wrong";
            } 

}
?>