に認証ポップアップを表示せずにXSSのエラーおよび「user_denied」レスポンスを返しますフロー。FacebookのJS SDKは、私が<a href="http://apps.facebook.com/insideny/" rel="nofollow">http://apps.facebook.com/insideny/</a></p> <p>でFBのキャンバスアプリを持っているFB.Login
は、私は次のロジックを使用しているFacebookのJavascriptのSDKを実装しているので:
1)FBのAPI
FB.init({
appId: 'XXXXXXXXXXXXXX',
xfbml: true,
cookie: true,
oauth : true,
channelUrl: 'http://www.niteflymobile.com/insideny/channel.html' },
{scope: 'email'});
を初期化)、ログイン状態の確認を
FB.getLoginStatus(function(response) { ... })
3)ユーザーがログインしている場合(response.status == "connected")、適切なCookieを設定し、ログインしたページにリダイレクトします。 HERE
4)問題がのResponse.Status場合IS WHERE IS!= "接続" {(通常は、新規ユーザーのために、 "not_authorized" を返す)、その後FB.login(機能(応答への呼び出しを発射)... })。
4A)FB.loginは、以下のタイプの2つのエラーで戻ってくる:URLのstatic.ak.fbcdn.net/connect/xd_proxy.php?version=3 &でフレームにアクセスするための
「安全でないJavaScriptの試みERROR_REASON = user_denied &エラー= &ましたerror_description = +ユーザーをACCESS_DENIED + + +あなたの要求。#1 CB = f22684144 &起源=のhttp%3A%2F%2Fwww.niteflymobile.com%2Ff185641ad8 &関係=オープナー&輸送=のpostMessage &フレームを否定= f39056acd8というURLのフレームから取得します。ドメイン、プロトコル、ポートは一致する必要があります。
ます(http:新規ユーザーのためのSOのルールを遵守する両方のリンクから//を削除)
と私はコンソールに書いたオブジェクトが返されるだけではヌルauthResponseが含まれているとは対照的に、ステータスが「不明」であります"not_authorized"にはちょうど一瞬前です。
ここでの中核となる問題は、承認のためのポップアップが起動しても空白になり、ユーザーの操作なしですばやく閉じられることです。
私はこのことに対してかなり頭を抱えていましたが、私はあまりにも深いので、私はちょうど私が見ることができない愚かな間違いを疑う。
サンドボックスモードを削除しましたが、これが原因である可能性がありますか?
下記に記入CODE:
$('.fb_link').click(function() {
FB.init({appId: 'XXXXXXXXXX', xfbml: true, cookie: true, oauth : true, channelUrl: 'http://www.niteflymobile.com/insideny/channel.html' },{scope: 'email'});
//setup fb login check
FB.getLoginStatus(function(response) {
if(response) {
console.log(response);
if(response.status == "connected") {
alert(response.status);
alert(response.authResponse.userID+"preajax");
//jquery cookie write
$.cookie('fbID', response.authResponse.userID, { expires: 29, path: '/' });
//secondary cookie write using only javascript
createCookie('fbID', response.authResponse.userID, 29);
//bandaid to fire ajax to set cookie on server side if the js side fails
var fbID_check = readCookie('fbID');
if(fbID_check) {
alert("fbID cookie set "+fbID_check);
window.location = "http://apps.facebook.com/insideny/";
}
else {
url_vars = "fbID="+response.authResponse.userID;
$.ajax({
type: "POST",
url: "set_fb_cookie.php",
data: url_vars,
success: function(data){
alert(data + "passed back from ajax");
var fbID_check_2 = readCookie("fbID");
alert(fbID_check_2 + "read from cookie");
window.location = "http://apps.facebook.com/insideny/";
}
});
return false;
}
alert(response.authResponse.userID+"postajax");
}
else {
FB.login(function(response) {
alert('here');
console.log(response);
});
}
}
})
})
UPDATE 8.12フェリペ・ブラマ
@は同じ効果(ポップアップしますが、空白で、ダウンクローズ)
$('.fb_link').click(function() {
FB.init({appId: 'XXXXXXXXXXXXX', xfbml: true, cookie: true, oauth : true, channelUrl: 'niteflymobile.com/insideny/channel.html'; },{scope: 'email'});
FB.login(function(response) {
console.log(response); })
})
説明だけでなく、完全なコードを投稿できますか? – Einacio
完全なコードが追加されました –
Developerアプリにあるアプリ設定でoauth 2.0が有効になっていますか? –