Facebook JS SDK - 权限检查后发布到墙上

时间:2011-09-13 05:42:58

标签: facebook-graph-api facebook facebook-javascript-sdk

我一直在谷歌搜索2天,找不到任何确定的东西。我遇到的所有结果都使用了不再有效的弃用代码。请帮忙。

我需要一个按钮点击...

  1. 检查扩展权限
  2. 如果尚未授予权限,请求他们(user_likes,offline_access,publish_stream)
  3. 获得权限后,将帖子发布到用户的墙上
  4. 允许我在用户离线时向其发送墙贴
  5. 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:9)

这很简单。您可以调用FB.login来获取扩展权限。然后你可以调用FB.ui来发布一个状态(或FB.api来调用/ me / feed来发布而不需要用户交互,这是不赞成的)。为了能够在以后推送墙贴,您需要将access_token存储在服务器上以供以后使用。

<!DOCTYPE html>
<html>
<body>
<div id="fb-root"></div>
<a href="#" onclick="return postToWall();">Post To Wall</a>
<script src="//connect.facebook.net/en_US/all.js"></script>
<script>
  FB.init({ appId: '**appID**', status: true, cookie: true, xfbml: true, oauth: true });

  function postToWall() {  
    FB.login(function(response) {
      if (response.authResponse) {
        FB.ui({
            method: 'feed', 
            name: 'Facebook Dialogs',
            link: 'https://developers.facebook.com/docs/reference/dialogs/',
            picture: 'http://fbrell.com/f8.jpg',
            caption: 'Reference Documentation',
            description: 'Dialogs provide a simple, consistent interface for applications to interface with users.'
        },
        function(response) {
          if (response && response.post_id) {
            alert('Post was published.');
          } else {
            alert('Post was not published.');
          }
        });
      } else {
        alert('User cancelled login or did not fully authorize.');
      }
    }, {scope: 'user_likes,offline_access,publish_stream'});
    return false;
}
</script>
</body>
</html>