哪个facebook API?

时间:2011-04-11 15:00:25

标签: php facebook

如果他们在我的网站上执行某项操作,我是否可以在指定用户的Facebook墙上发布消息?

基本上,我正在寻找一步一步的指导来实现这一目标,因为我无法通过facebook文档弄清楚如何做到这一点。

7 个答案:

答案 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)

这是一般流程

  1. 在developers.facebook.com注册应用
  2. 创建此页面的链接:https://www.facebook.com/dialog/oauth? CLIENT_ID = 164837516907837&安培; 键入= USER_AGENT&安培; 范围=电子邮件,read_stream,user_videos,friends_videos,user_about_me,offline_access&安培; REDIRECT_URI = HTTP://www.facebook.com/connect/login_success.html
  3. 保存用户x从步骤2返回的誓言令牌
  4. 通过API调用发布到用户x的墙

答案 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