ファンページ内のタブであるFacebookアプリケーションがあります。
署名されたリクエストを使用して、ユーザーがそのページを気に入っているかどうかを確認し、それに基づいてコンテンツを表示しました。
また、ユーザーにログインしてアプリケーションへのアクセスを許可するように求めた後、FacebookユーザーIDを取得することもできました。
私ができないことは、「apprequests」機能を動作させることです。私はそれをいくつかの方法で試しました:
参考までに-このバージョンのjqueryを使用しています:https ://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<form id="form1" runat="server">
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({ appId: 'myappid', xfbml: true, cookie: true, oauth: true });
};
function inviteFriends() {
FB.ui({
method: 'apprequests',
message: 'Enter this cool competition http://www.facebook.com/pages/My-Test-Fan-Page/204123762998981?sk=app_308637695832192',
redirect_uri: 'http://www.facebook.com/pages/My-Test-Fan-Page/204123762998981?sk=app_308637695832192',
display: 'iframe'
},
function (response) {
console.log(response);
}
);
}
...。
これを行うと、2つの問題が発生します(おそらく関連していると思います)1。選択したユーザーにリクエストが送信されない2.レスポンスの関数が呼び出されない。FB.uiメソッドを呼び出すと、ユーザーを選択できますが、それを行うと、ダイアログにロード画面が表示され、シャットダウンするだけです。
私が奇妙だと思ったのは、「redirect_uri」パラメーターを含めなかった場合(これは私が見ることができるものからは必要ないはずです)、アプリケーションがコールバックURLを所有していないというエラーが発生したことです。
私もこのようにしてみました
var message = 'Enter this cool competition';
var requestUrl = 'http://www.facebook.com/dialog/apprequests?app_id=308637695832192&redirect_uri=http://localhost:51934/Default.aspx&message=' + message;
window.top.location.href = requestUrl;
これも機能しているように見えます。ユーザーを選択でき、機能しているように見えます。to[0]、to[1]などのクエリ文字列パラメーターで追加したユーザーを取得します。
私がやっていることが間違っていて、これを引き起こしている可能性があることはありますか?ユーザーにアプリの承認をリクエストするときは、Facebookのドキュメントからわかる限り、必要なのはこれだけです。ページ内でできることにはいくつかの制限があるかどうかも迷っていますか?
どんな助けでも大歓迎です。