【问题标题】:How do I get a Facebook App on my fan page to see the user details that are visiting my app?如何在我的粉丝页面上获取 Facebook 应用程序以查看访问我的应用程序的用户详细信息?
【发布时间】:2011-09-13 20:15:34
【问题描述】:

我正在 Facebook 中创建一个可以与我的粉丝页面配合使用的应用。

当粉丝点击标签时,他们会看到一个页面,他们可以在其中输入一些信息。我想通过显示他们的姓名和 Facebook 用户 ID 来个性化该页面?

这甚至可以在不浏览整个权限页面的情况下实现吗?

另外,在我的粉丝页面的应用程序上,是否可以显示页面所有粉丝的下拉列表?

【问题讨论】:

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


    【解决方案1】:

    未经用户许可,您无法获取用户的姓名或 ID。

    我使用 PHP SDK 来访问签名的请求。这将使您可以访问用户的区域设置、国家/地区、他们是否喜欢您的品牌页面以及其他一些不具体的内容。一旦用户对您的应用程序进行身份验证,签名请求就可以为您提供更多用户信息。如果您只需要用户名和 ID,则签名请求是一种比发出 Graph API 请求更有效的获取方式。

    阅读更多 - https://developers.facebook.com/docs/authentication/signed_request/

    【讨论】:

    • 这是我粉丝页面上的简单投票,所以我不想通过身份验证,但我确实想限制每个人只能投一票。还有其他想法吗?
    • 投票是 Facebook 内部的一大难题。使用 cookie 是一种选择,但您必须经历很多麻烦(如 P3P 标头)才能使其在 Safari 和 IE 中运行,因为它们通常不接受来自 iFrame 的 cookie。不幸的是,我还没有找到一个好的解决方案。也许在数据库中跟踪 IP 和时间戳?地狱般的黑客,不可靠。如果可以的话,我建议不要一起在 Facebook 上投票。
    【解决方案2】:

    这甚至可以在不浏览整个权限页面的情况下实现吗?

    据我所知,没有。我在我运行的 Joomla 网站上进行了基本的用户集成,它需要您授予权限,然后您的应用程序才能通过 API 提取用户数据。

    如果允许您在没有明确授予您许可的情况下随意请求用户信息,这也是严重违反安全性的行为。

    【讨论】:

    • 我想我认为该应用程序位于 facebook 内部,因此我可以获得用户 ID,但我想不是。
    【解决方案3】:

    您可以显示带有指向其个人资料链接的用户名,而无需请求任何类型的许可。您可以在此处查看演示 - http://www.facebook.com/digimantra?sk=app_256564141033045。以下 sn-p 在 facebook 页面中显示用户名 -

    <html xmlns:fb="http://www.facebook.com/2008/fbml">
     
        <div id="fb-root"></div>
        <script>
            window.fbAsyncInit = function() {
                FB.init({
                    appId: 'APP_ID',
                    cookie: true,
                    xfbml: true,
                    oauth: true
                });
     
     
            };
            (function() {
                var e = document.createElement('script'); e.async = true;
                e.src = document.location.protocol +
                    '//connect.facebook.net/en_US/all.js';
                document.getElementById('fb-root').appendChild(e);
            }());
        </script>
        <fb:serverFbml>
            <script type="text/fbml">
                <div style="font-size:2em;" >
                    Hello, <fb:userlink uid="loggedinuser"/>
                </div>
            </script>
     
        </fb:serverFbml>
     
    </html>
    

    【讨论】:

      【解决方案4】:

      以前可以使用 fb:name FBML 标签,但现在不再支持使用 iframe 创建页面。

      【讨论】:

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