我想知道如何在画布应用程序中使用facebook javascript(使用facebook c#sdk)。
我想将用户发送到请求表单,其中包含
之类的调用FB.ui({
method: 'apprequests',
message: 'You should learn more about the',
}, Log.info.bind('send-to-many callback'));
在我的网站母版页中,我在结束正文标记之前有以下代码:
<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: 'AppId', cookie: true,
status: true, xfbml: true
});
</script>
但不知何故,它打破了整个应用程序。该应用程序不再在facebook的iframe中。
它只是作为自己的网站加载。
在这样的画布应用程序中集成js sdk的最佳方法是什么(ASP.NET MVC 2)?
答案 0 :(得分:1)
我刚刚在我的Canvas App中尝试了你的场景。 我同时尝试从应用网址http://apps.facebook.com/myappname和我的服务器网址http://myserver/mypage.aspx点击我的“发送应用请求”链接。对我来说,他们都工作。当点击该按钮时,我得到了对话框,我可以邀请我的朋友使用该应用程序(我没有在Canvas之外重定向)。
我不知道您的记录器(Log.info.bind('send-to-many callback'));
)是如何工作的,但我会尝试将其从您的代码中删除。
以下是我在MasterPage中使用的代码:
<body>
<div id="fb-root"></div>
<script type="text/javascript">
window.fbAsyncInit = function () {
FB.init({ appId: '<%= ConfigurationManager.AppSettings["fbAppId"].ToString() %>',
status: true,
cookie: true,
xfbml: true
});
//Autoresize iFrame
FB.Canvas.setAutoResize();
};
(function () {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js#xfbml=1';
document.getElementById('fb-root').appendChild(e);
} ());
function sendAppRequest() {
FB.ui(
{
method: 'apprequests',
message: 'Learn more'
}
);
}
</script>
<div id="content">
<a href="javascript:void(0);" onclick="sendAppRequest()">Send App Requests</a>
</div>
</body>
也许对我来说它有用,因为我使用fbAsyncInit ...不知道,希望这有帮助......