これについてここに多くの 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のソリューションを見るとよいでしょう。