gpt4 book ai didi

facebook - 使用 Facebook JavaScript API + iFrame 检测点赞

转载 作者:行者123 更新时间:2023-12-01 16:34:15 26 4
gpt4 key购买 nike

使用 Facebook JavaScript API 构建一个应用程序,该应用程序将使用新的 iframe 方法嵌入到页面中。

我想检测他们是否喜欢当前页面。通常我会在 PHP 中使用 print_r($_REQUEST),但在使用 iframe 时似乎不起作用。

还有这个选项:http://developers.facebook.com/docs/reference/fbml/visible-to-connection/但它说它已被弃用,我从来不喜欢这种方法,因为它相当老套。

现在怎么做呢?更喜欢使用 XFBML + JavaScript API,但如果需要也可以使用 PHP。

最佳答案

我们已经这样做了好几次,而且看起来效果很好。它使用 XFBML 生成 Like Button widget和 JS SDK 渲染 XFBML 并订阅 Facebook events .下面的代码示例:

编辑:因为您希望在页面加载时检测用户是否是粉丝,而 FB 弃用了该功能,让您在通过传递加载 Canvas 时直接从他们那里获取fb_page_id 到地址查询字符串,您需要为用户安装应用程序以测试他们对您页面的粉丝。它肯定会给您的应用程序增加很多摩擦,但它现在就是这样 - 我猜。

    <?php
require 'facebook.php';

// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'YOUR APP ID',
'secret' => 'YOUR APP SECRET',
'cookie' => false,
));

try
{
$session = $facebook->getSession();

if (empty($session['uid']))
{
throw new Exception("User not connected to application.");
}

$is_fan = $facebook->api(array(
'method' => 'fql.query',
'query' => "SELECT uid, page_id FROM page_fan WHERE uid = {$session['uid']}"
));

if (false == $is_fan || count($is_fan) == 0) // 0 results will be returned if the user is not a fan
{
$is_fan = false;
}
else
{
$is_fan = true;
}
}
catch (FacebookApiException $e)
{
/**
* you don't have an active user session or required permissions
* for this user, so rdr to facebook to login.
**/

$loginUrl = $facebook->getLoginUrl(array(
'req_perms' => 'user_likes'
));

header('Location: ' . $loginUrl);
exit;
}
?>
<html>
<head>
</head>
<body>

<? if (empty($is_fan)): //user is not a fan. ?>
<fb:like href="http://www.facebook.com/your-facebook-page"
show_faces="true"
width="400">
</fb:like>
<? else: ?>
Yay! You're a fan!
<? endif; >?

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

// Subscribe to the edge creation event, from Facebook
FB.Event.subscribe('edge.create', function(response)
{
alert("Congratulations! We are so excited that you are a fan now! woot!")
});

</script>

</body>
</html>

好的,终于用直接 Markdown 格式化了所有内容。那一点都不痛.. (sike) :|

关于facebook - 使用 Facebook JavaScript API + iFrame 检测点赞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5832018/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com