Facebook好友邀请外部网站

时间:2010-12-28 00:59:43

标签: facebook

我一直在尝试建立一个连接到Facebook的网站。我一直在努力使用Facebook的API文档和网络上的示例(包括SO)。 API似乎在不断变化,因此大多数可用信息不再有效。使用Facebook C# SDKFacebook Javascript SDK的混合我已经能够允许用户登录Facebook,授予我的网站offline_access(这是针对系统的WPF客户端方面)权限和拉基本的朋友信息。我创建了一个朋友邀请控件。我按照Facebook文档制作了下面的内容。我删除了不必要的代码以保持帖子简短。

   <div id="fb-root">
     <fb:serverFbml style="width: 755px;">
        <script type="text/fbml">
           <fb:fbml>
              <fb:request-form  method="POST" invite="true" type="My App Name"
                content="You have been invited to xxxx. <%= Server.HtmlEncode(@"<fb:req-choice url=""http://apps.facebook.com/appname/"" label=""OK"" />") %>" >
                   <fb:multi-friend-selector showborder="false" actiontext="Invite your friends to use this application." />
                   <fb:request-form-submit />
                   </fb:request-form>
            </fb:fbml>
          </script>                    
    </div>
    <form id="MainForm" runat="server">
            <asp:ContentPlaceHolder ID="MainContent" runat="server" />
     </form> 

    <script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>
    <script type="text/javascript">
        FB.init({
            appId: 'xxxxx',
            status: true,
            cookie: true,
            xfbml: true
        });
    </script>

我没有收到任何错误,但代码不会呈现朋友邀请控件。我在Java Script Test Console上检查了它并在那里渲染。有一些明显的事情我做错了所以我真的很感激这方面的一些帮助。如果有任何其他需要的信息,请在开始激怒我写一个愚蠢的问题之前告诉我。

2 个答案:

答案 0 :(得分:2)

我也是在这种情况下,不知怎的,我解决了它。

代码是:

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"
xmlns:fb="http://www.facebook.com/2008/fbml"><body>
<div id="fb-root"></div>
<script type="text/javascript">
 window.fbAsyncInit = function() {
        FB.init({appId: 'APP_ID', status: true, cookie: true, xfbml: true});
    };
    (function() {
        var e = document.createElement('script');
        e.type = 'text/javascript';
        e.src = document.location.protocol +
            '//connect.facebook.net/en_US/all.js';
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
    }());
    window.fbAsyncInit = function() {
         FB.init({appId: 'APP_ID', status: true, cookie: true, xfbml: true});        

             FB.Event.subscribe('auth.login', function(response) {
                 login();
             });
             FB.Event.subscribe('auth.logout', function(response) {

                 logout();
             });         
             FB.getLoginStatus(function(response) {
                 if (response.session) {
                     login();
                 }
             });
         }; 
</script>
<div id='outside_invite_box' style='display: none;'></div>
<div id='inside_invite_box'><fb:serverfbml width="615">
    <script type="text/fbml">
        <fb:request-form action="friends.php"
            method="POST"
            invite="true"
            type="Invite"           
            content="Welcome to MyApp <fb:req-choice url='http://example.com' label='Join' />">
            <fb:multi-friend-selector showborder="false"
                bypass="cancel"
                cols=4
                rows=5
                max=14
                actiontext="Select Facebook Friends"/>
        </fb:request-form>
    </script>
</fb:serverfbml></div>
</body>
</html>

我认为这很有用。

答案 1 :(得分:-1)

如果你正在使用RoR,请查看宝石RestClient和FbGraph

否则开始使用RoR:)

相关问题