0

ファンページ内のタブである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のドキュメントからわかる限り、必要なのはこれだけです。ページ内でできることにはいくつかの制限があるかどうかも迷っていますか?

どんな助けでも大歓迎です。

4

1 に答える 1

2

私もこの問題に一晩中取り組んでおり、あなたが試してみるべき解決策があると思います.

1)アプリの設定で、ページタブオプションのURLのみを設定しました.Facebookアプリとしてアプリを使用することを選択したとき、突然リクエストが配信され、すべてが表示されました。

2) については、redirect_uri が設定されていて、コールバック関数が呼び出されていなかったため、ダイアログが閉じてしまいました。redirect_uri は、ディスプレイがポップアップしているときにのみ動作すると思います。redirect_uri オプションと display オプションを削除してみてください

ちなみに、リダイレクトURIを所有していないというエラーも発生していました。何を変更したのか、それが取得を停止したことを意味するかどうかはわかりませんが、ここで説明されているように、sdk init html を body タグの直後に移動したときだったと思われますhttps://developers.facebook.com/docs/reference/ javascript/以前は body タグを閉じる直前に持っていました。お役に立てれば。

于 2011-11-25T01:05:59.190 に答える