2011-12-06 16 views
0

私はページタブアプリケーションを持っており、ユーザーが初めてこのタブにアクセスしたときに、(ユーザーの電子メールを使用するための)アクセス許可を要求します。
これは十分に単純なはずだと思いましたが、私はhundrends q & a、チュートリアル、php/js apis、古い方法と新しい方法/機能/技法で迷っています。 自分のニーズに合った正しい方法がどれか分かりません。私のアプリが何をしているかfacebook page tab oauth

は同じくらい簡単です:私は何をしようとしている

if (user_has_liked_page()) 
    include ("fan.php"); 
else 
    include ("guest.php"); 

が、これは許可を要求し、「ポップアップ」FB持っている - 好ましくはただページを好きなユーザーのために。

Facebookのdocs/apiのすべてのURLを返信しないようにお願いします。私は多くを試しました。

可能であれば、私はこれらの技術のどれが状況に適しているのかを知りたいと思います。
例も歓迎されています。

ありがとうございます。 channel.htmlのあなたのfan.phpファイルに次のような何かを試みることができるJSソリューションを

+0

ここにあるJavaScript APIので遊ぶことができますテストコンソールもありますどのようにあなたは意志でありますユーザーが何を持っているか、ポップアップを見たことがないかを追跡します。メールへのアクセスを許可していないにもかかわらず、自分のuser_idを取得することができない場合は、その後の訪問のために自分のマシンにCookieを保存する予定ですか?そうでなければ、アクセスを許可していない誰かがポップアップを見るでしょう。私はあなたが望むものが達成できると思う。あなたは、PHPのソリューションやJSを使用したいですか? – TommyBs

+0

こんにちは@TommyBs返信ありがとう。私は前にこのようなanyhtingをしていない、と私はfacebookが私のためにこの情報を保持すると仮定した。しかし、これがポイントでないなら、多分クッキーが仕事をするでしょう。 – CrisDeBlonde

+0

私はjsソリューションを好むだろうが、PHPの方がもっと便利であれば、私もそれに対処できます。 – CrisDeBlonde

答えて

2

<div id="fb-root"></div> 
<script> 
window.fbAsyncInit = function() { 
FB.init({ 
    appId  : 'YOUR_APP_ID', // App ID 
    channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File 
    status  : true, // check login status 
    cookie  : true, // enable cookies to allow the server to access the session 
    oauth  : true, // enable OAuth 2.0 
    xfbml  : true // parse XFBML 
}); 

// Additional initialization code here 
}; 

// Load the SDK Asynchronously 
(function(d){ 
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;} 
js = d.createElement('script'); js.id = id; js.async = true; 
js.src = "//connect.facebook.net/en_US/all.js"; 
d.getElementsByTagName('head')[0].appendChild(js); 
}(document)); 
</script> 

<button id="fb-login">Login & Permissions</button> 

<script> 
document.getElementById('fb-login').onclick = function() { 
var cb = function(response) { 
if (response.status === 'connected') { 
    //user is logged in here and you have email scope already 
} else { 
    alert('Click the "Login and Permissions" button so we can send you emails'); 
} 
}; 
FB.login(cb, { scope: 'email' }); 
}; 
</script> 

内容はちょうど私が持っていなかった

<script src="//connect.facebook.net/en_US/all.js"></script> 

する必要がありますこれをテストする時間と私は公式のドキュメントからこれのほとんどを持ち上げた。私はあなたがリンクを望んでいないと言ったことを知っています。しかし、あなたは便利

https://developers.facebook.com/docs/reference/javascript/

このページを見つけるかもしれないと私は疑問だろうか

https://developers.facebook.com/tools/console/

+0

働いているようです。私はもう少しそれをテストし、フィードバックを返すだろう;) – CrisDeBlonde

+0

ありがとう!それは仕事をした! – CrisDeBlonde

+0

こんにちは@tommybs、明示的なボタンのクリックを使わずにログインしていないユーザーの検出時にFB.loginを自動的に呼び出す方法を知っていますか? (ほとんどのブラウザは、FBドキュメントごとにブロックされ、正しくあります;)ログインしていないユーザを検出しようとしていて、自動的にログインを促します。 –