Facebook API:如何发布到我自己的墙页?

时间:2013-10-02 10:13:11

标签: facebook api facebook-graph-api facebook-fql facebook-php-sdk

好的,对我来说可能有很多问题。但我无法解决如何处理我的情况。 让我们开始:

我开发了一个房产列表网站。流程图很简单。用户可以使用Facebook登录发布任意数量的内容。

现在他们都没事。我也可以解决用户完成发布的方式,它会自动发布到他们的个人/用户墙页。

但我希望每个商家信息都应该发布在我的房产列表页面上。它是作为发布用户发布还是作为页面名称发布,没问题。但我需要确保它不使用我的个人/用户/管理员页面。

所以我找不到任何答案如何解决这个问题。如何在单个网站会话中,我的脚本可以发布到发布的用户墙,并发布到我的页面。如果禁止外国人用户而不是管理员发布到我的页面,那么当创建的facebook api属于用户时,如何以页面本身的名称发布到我的页面。我需要创建不同的facebook api对象吗?需要帮助..感谢任何可以帮助我的人。真的很感激。

以下是我使用的代码:

$attachment = array(
                'message' => FB_STREAM_MSG,
                'picture' => $imgsrc,
                'link' => $seourl,
                'name' => $prop_name,
                'caption' => FB_STREAM_CAP,
                'description' => substr($prop_desc,0,150) . '..',
            );
            $facebook->api("/$user/feed", 'POST', $attachment);
            //$facebook->api("/".FB_PAGE_ID, 'POST', $attachment); //this doesn't work.

1 个答案:

答案 0 :(得分:1)

好的...问题全部解决了!

要POST到其他用户墙,用户需要登录以生成用户令牌和代码,如下所示:

$attachment = array(
'message' => ClearText_FB($prop_name),
'picture' => $imgsrc,
'link' => $seourl,
'name' => ClearText_FB($prop_name),
'caption' => FB_STREAM_CAP,
'description' => ClearText_FB(substr($prop_desc,0,150) . '..'),
);
$facebook->api("/$user/feed", 'POST', $attachment);

要发布到我们自己的页面墙,用户是谁,无论用户是否是该页面的管理员,都无关紧要。但是获取页面访问令牌以授予应用程序发布到页面墙是很重要的。 fb文档说页面访问令牌将永远存在,所以我们只需要获取一次并将其保存以供下次使用。

第一次获取页面访问令牌:

$page_access_token = "";
            $result = $facebook->api("/me/accounts");
            foreach($result["data"] as $page) {
                if($page["id"] == $page_id) {
                    //$page_access_token = $page["access_token"];
                    $page_access_token = $facebook->api("/".FB_PAGE_ID."?fields=access_token");
                    break;
                }
            }

然后将$ page_access_token值保存到server / db或file。上面的代码不再需要了。注释或删除它。删除“名称”字段,因为它似乎会将帖子放在其他用户帖子部分下。这将作为页面发布到页面墙而不是用户:

$attachment = array(
'message' => ClearText_FB($prop_name),
'picture' => $imgsrc,
'link' => $seourl,
'description' => ClearText_FB(substr($prop_desc,0,150) . '..'),
'access_token' => $page_access_token,
);
$facebook->api("/".FB_PAGE_ID.'/feed', 'POST', $attachment);