1

これについてここに多くの Q&A があることは知っていますが、それらは完全なコード例を示していないか、私がやろうとしていることとは異なることを行うためのものではないため、それらを理解できないようです。

簡単な Facebook ウェルカム テスト タブがあります。キャンバス アプリではありません。ユーザーIDを取得できるようにしたいのですが、署名付きリクエストに表示される前に、その情報へのアクセスをユーザーに促す必要があります。

私が探しているのは、単純なウェルカム タブのコード例です。これはファンコンテンツページにあるので、ログインページなどは必要ありません。そのため、すでにログインしている必要があります。ユーザーIDを取得できるように、そのダイアログボックスに許可を求めるポップアップが表示されるようにしたいだけです。

ありがとう

編集:私は自分の問題を理解したばかりだと付け加えたいと思いましたが、それは実際にはこの質問に対する答えではありません. ユーザーにプロファイルへのアクセス許可を求めることなく、ユーザー ID を取得する方法を見つけました。このコードをページに追加するのと同じくらい簡単で、タブとキャンバス アプリでも同じように機能します。getUser() 自体は 0 を返しますが、ユーザーはこのコンテンツを表示するために既にログインしているため、getUser() が 0 を返すと、コードは API メソッドからユーザー ID を取得するだけです。ようやくこれを理解した今、それは簡単に思えます。

$session = $facebook->getUser();

if (!$session) {

    $url = $facebook->getLoginUrl(array(
        'canvas' => 1,
        'fbconnect' => 0
    ));

    echo "<script type='text/javascript'>top.location.href = '$url';</script>";

} else {

    try {

        $uid = $facebook->getUser();
        $me = $facebook->api('/me');

        $updated = date("l, F j, Y", strtotime($me['updated_time']));

        echo "Hello " . $me['name'] . "<br />";
        echo "You last updated your profile on " . $updated;

    } catch (FacebookApiException $e) {

        echo "Error:" . print_r($e, true);

    }
}

タブアプリの拡張アクセス許可ダイアログを表示する方法があるかどうかを知りたいので、php sdkのソリューションを見るとよいでしょう。

4

2 に答える 2

0

アプリケーションがユーザーのデータをプルできるようにするように求める必要があります

これは、JS SDK の関数を使用して実行できますFB.login()。詳細については、Facebook のドキュメントを参照してください: http://developers.facebook.com/docs/reference/javascript/FB.login/

mouseclickポップアップはまたはイベントでのみ開くことができることに注意してkeyupください。そうしないと、ポップアップ ブロッカーによってブロックされます。

また、開発者サイトでドメインとサイトの URL をアプリケーションに設定し、facebook js ライブラリを初期化する必要があります (読み込みの段落 - http://developers.facebook.com/docs/reference/javascript/ ) 。

<div onclick="login();">click here to login</div>

<script type="text/javascript">
function afterLogin(){
   alert("user logged");
}

function login(){
    FB.getLoginStatus(function(response){
        if(response.status=="connected")
        {
            afterLogin();
        } else {
            FB.login(function(response){
                if(response.status=="connected")
                {
                afterLogin();
                }
            });
        }
    });
}
</script>
于 2012-02-25T16:07:31.007 に答える
-1

Facebookはこれを許可していないと思います... Facebookは、ユーザーのタブが誰がそれを見ているかを検出できることを望んでおらず、ユーザーには表示されない情報をユーザーの友人に表示する可能性があります。

私は間違っている可能性があります:)

于 2012-02-25T15:51:45.510 に答える