我一直在這一整個上午一直在與這個戰鬥。無法獲取FB.ui方法:oauth工作
我實際上試圖讓自定義的Open Graph Actions工作。我已經成功地在此,比特的信息從這裏和那裏,到處都是拼湊的,現在我有一個按鈕,這職位「想」行動流程如下:
> User Clicks Button
> FB.api checks response.
> if response code is 200 the user has not granted publish_stream permission
> call FB.ui({ method:
"permissions.request",
"perms": 'email,publish_stream'
}
> call back to original function and post to stream
> if user has already granted permission, then just publish
這一切工作可愛。
我所需要的是抓住一個用戶根本沒有登錄到Facebook的案例。
這似乎是響應代碼2500
在沒有訪問令牌存在
,所以我有這個代碼snippe,它捕獲這種情況下
.....
} else if (((response.error.code) * 1) == 2500) {
doLogin('publish_stream', postWant, itemId);
// post want being the original function and itemId being the item we are "wanting"
}
我doLogin功能如下:
function doLogin(permRequired, callingFunction, urlAppend) {
FB.ui({
method: 'oauth',
scope: 'email,' + permRequired
},
function (response) {
// DO THINGS NOW WE'RE LOGGED IN
});
};
這與我的功能基本上完全相同以獲得擴展權限,如下所示:
function getPermission(permRequired, callingFunction, urlAppend) {
FB.ui({ method:
"permissions.request",
"perms": 'email,' + permRequired
},
function (response) {
// DO THINGS NOW WE HAVE PERMISSION
});
};
後一個例子的作品,但在登錄例子只是加載一個彈出說:「很抱歉,發生錯誤,請稍後再試」
顯然FB.init已經被調用時,APP設置正確地說,在FB.init中聲明的APP_ID等等,顯然,和其他東西一樣。
FB登錄弗羅馬FB登錄按鈕的作品,但我需要這個通過這個流程,以工作爲「無摩擦」的行爲來操作(即我不能再有一個按鈕點擊)