2011-04-18 3 views
1

キャンバスアプリケーション(facebook c#sdkを使用しています)でfacebook javascriptを使用する方法が不思議です。iframeアプリケーションでfacebook javascript sdkを使用する

私は最後のbodyタグの前に次のコードを持っている私のサイトマスターページで

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にはありません。

自分のウェブサイトとして読み込まれます。

のようなキャンバスアプリケーション(ASP.NET MVC 2)にjs sdkを統合するにはどうすればよいですか?

+0

デフォルト:ここで

は私が私のマスターページに使用したコードですFB.ui()のアクションはリクエストを送信するためのポップアップダイアログウィンドウを開くことです。あなたは何とかfacebook iframeから壊れているでしょう、おそらくどこかのコールバックでtop.location.hrefを使用しています。私が気づいているキャンバスアプリケーションにjs sdkを使用するための特別な手順はありません。 – DannyKK

答えて

1

私のキャンバスアプリケーションであなたのシナリオを試しました。 私は両方とも、アプリケーションURL http://apps.facebook.com/myappnameと私のサーバのURL:http://myserver/mypage.aspxから私の "Send App Requests"リンクをクリックしようとしました。私のために彼らはどちらも働く。そのボタンをクリックするとダイアログが表示され、私は友達にAppを使用するように招待することができます(私はキャンバスの外にリダイレクトされません)。

ロガー(Log.info.bind('send-to-many callback'));)の仕組みがわかりませんが、コードから削除しようとします。私はfbAsyncInitを使用しているため

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

はたぶん私のためにそれが分からない...、働く、これが役に立てば幸い...

関連する問題