【问题标题】:Facebook Friend Invite External WebsiteFacebook 朋友邀请外部网站
【发布时间】:2012-05-28 19:04:27
【问题描述】:

我一直在尝试建立一个连接到 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 上检查了它,它在那里呈现。有一些明显的事情我做错了,所以我真的很感激一些帮助。请让我知道是否需要任何其他信息,然后再开始抨击我写了一个愚蠢的问题。

【问题讨论】:

    标签: facebook


    【解决方案1】:

    我也遇到过这种情况,不知怎么解决的。

    代码是:

    <!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>
    

    我觉得很有用。

    【讨论】:

    • 您指定的代码正在渲染。我仍然有一些问题,但我至少有一个起点。我在您的代码和我的代码之间看到的唯一区别是 FB 库的异步加载。为什么这会解决问题?
    • 对不起..我也是facebook的初学者..如果我有任何信息我会放在这里..
    【解决方案2】:

    如果您使用的是 RoR,请查看 Gems RestClient 和 FbGraph

    否则开始使用 RoR :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多