Я только что попробовал ваш сценарий в моем приложении Canvas.Я попробовал и то, и другое щелкнуть ссылку «Отправить запросы приложений» как по URL-адресу приложения http://apps.facebook.com/myappname, так и по URL-адресу моего сервера: 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 ...не знаю, надеюсь, это поможет ...