0

我一直在這一整個上午一直在與這個戰鬥。無法獲取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登錄按鈕的作品,但我需要這個通過這個流程,以工作爲「無摩擦」的行爲來操作(即我不能再有一個按鈕點擊)

回答