如果他们在我的网站上执行某项操作,我是否可以在指定用户的Facebook墙上发布消息?
基本上,我正在寻找一步一步的指导来实现这一目标,因为我无法通过facebook文档弄清楚如何做到这一点。
答案 0 :(得分:11)
第1步:
在facebook上设置新的应用程序。输入您的网站地址和域名等详细信息。记下api密钥,应用程序ID和应用程序密钥。您可以设置新的Facebook应用程序here。注意:要访问Facebook开发者信息中心,您需要成为经过验证的开发者,即您应该使用自己的手机号码或信用卡进行验证。
第2步:
设置验证方法以检查用户是否登录到Facebook以及是否存在facebook会话要求用户提供基本权限。您可以使用PHP SDK轻松完成此操作:
$fb_sdk_path = FACEBOOK_SDK_PATH;
require_once($fb_sdk_path);
//initialize FB object
$facebook = new Facebook(array(
'appId' => FB_APP_ID,
'secret' => FB_APP_SECRET,
'cookie' => true,
'domain' => 'example.com'
));
//try to get session. if this fails then it means user is not logged into facebook
$session = $facebook->getSession();
if (!$session) {
//get facebook login url
$url = $facebook->getLoginUrl(array(
'canvas' => 1,
'fbconnect' => 0
)
);
//put login url script to redirect to facebook login page (if you want to do this)
echo "<script type='text/javascript'>top.location.href = '$url';</script>";
exit;
} else {
//try to get user details from session this will trigger the permissions dialog.
try {
$uid = $facebook->getUser();
} catch (FacebookApiException $e) {
}
}
第3步:
使用Facebook Javascript FB.ui方法生成帖子表格。
<div id="fb-root"></div> <!-- don't forget to include this -->
<script src="http://connect.facebook.net/en_US/all.js"></script><!-- include fb js -->
<script type="text/javascript">
//initialize facebook
FB.init({
appId:'YOUR_APP_ID',
cookie:true,
status:true,
xfbml:true
});
//call this function on click or some other event
function post_to_profile() {
FB.ui({
method: 'feed',
name: 'title of the feed',
link: 'link on the title',
caption: 'caption to show below link, probably your domain name',
description: 'description',
picture:'picture to show',
message: 'default message. this can be edited by the user before posting'
});
}
</script>
这应该足以让它发挥作用。
答案 1 :(得分:1)
我建议使用Javascript API。虽然您当然可以使用PHP,但我发现所有重定向都需要糟糕的用户体验。以下是如何开始加载JavaScript API的方法。它还有一个关于如何贴墙的例子。 http://developers.facebook.com/docs/reference/javascript/
通过javascript发布到某人墙(你或朋友)使用FB.ui电话。 http://developers.facebook.com/docs/reference/javascript/FB.ui/
答案 2 :(得分:1)
直接来自http://developers.facebook.com/docs/guides/web/
<html>
<head>
<title>My Great Website</title>
</head>
<body>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js">
</script>
<script>
FB.init({
appId:'YOUR_APP_ID', cookie:true,
status:true, xfbml:true
});
FB.ui({ method: 'feed',
message: 'Facebook for Websites is super-cool'});
</script>
</body>
</html>
这将打开一个提示,以便发布到当前登录用户的墙上。
答案 3 :(得分:0)
Graph API的入门指南应该会对您有所帮助。具体来说,您将处理post
对象(该页面包含有关发布的注释,向下滚动到“发布”部分)。您还需要publish_stream
权限,您可以了解有关here的更多信息。而且,由于您在PHP中执行此操作,official Facebook PHP SDK也会引起您的兴趣。
答案 4 :(得分:0)
这是一般流程
答案 5 :(得分:0)
答案 6 :(得分:0)
涉及各种步骤
在facebook上1) 注册应用 开发者
2)获取 Facebook的PHP SDK
3)从用户处获取 离线访问 这样你就可以在用户墙上发帖了 未经他许可(使用 相应地)
4) 保存访问令牌 用户的脸书
5) 使用php的访问令牌 SDK发布到墙上
检查此问题可能会有所帮助
Publishing To User's Wall Without Being Online/Logged-in - Facebook Sharing Using Graph API