4

我正在使用facebook圖表api rsvp_event。我正在使用JavaScript SDK。當用戶登錄時,一切都很好。但是,當用戶沒有登錄時,它會發生錯誤。在Facebook Graph API中獲取無用戶登錄的訪問令牌?

我需要關於誰正在參加公共活動的信息。我現在明白我需要一個訪問令牌來檢索這些信息。所以,我的問題是如果沒有用戶登錄,我如何獲得訪問令牌?這是不可能的還是有解決方法?服務器端可以使用app_idclient_secret嗎?

我正在開發一個ColdFusion頁面,但如果需要,我可以使用PHP。我對兩者都有支持。

我聽說過術語* offline_access_permission *。他們已經刪除了這個功能。當它仍然可用時它可以完成嗎?

編輯:

難道這由test user能實現嗎?比方說,在服務器端,我通過測試用戶登錄,獲取活動信息(只需「獲取」請求即可閱讀誰正在參加活動),然後註銷。在客戶端我做其餘的事(用戶登錄,rsvp到事件)。

我對「測試用戶」或其目的瞭解不多。任何人都可以確認這是否可以實現?

在此先感謝。

+0

爲什麼你會需要一個訪問令牌,如果沒有用戶登錄? – Igy

+0

@Igy無論用戶是否登錄,我都需要顯示誰正在參加公共活動。我更新了我的問題。你能給我一些關於測試用戶的見解嗎? – sakibmoon

+0

@Leigh謝謝.. – sakibmoon

回答

2

您確定您確實需要用戶的訪問令牌嗎?根據文檔here您可能需要:

- a generic access_token for public events (those whose privacy is set to OPEN) 
- a user access_token for a user who can see the event for non-public events 
- an app access_token (for non-public events, must be the app that created the event) 
- a page access_token (for non-public events, must be the page that created the event) 

你可以得到關於如何到達這裏https://developers.facebook.com/docs/concepts/login/access-tokens-and-types/

這些令牌一個好主意可能是存儲主治用戶(在DB)的信息,當你有機會到事件 - 當某個用戶登錄時。

從FileContent獲取數據的更新。

我不知道你指的是什麼API響應準確,但是從我的經驗,他們正在返回的數據: - 使用JSON序列化 - 你需要使用DeserializeJSON(),例如像這樣:

local.returnStruct = DeserializeJSON(local.requestResult.FileContent); 

local.returnStruct = DeserializeJSON(local.requestResult.FileContent.toString()); 
  • 發送類似於URI的東西。我用一個函數來獲得數據:

    function getStructFromQueryString(queryString) { 
        var ret = StructNew(); 
        var i = 0; 
        var key = ''; 
    
        for(i=1; i LTE ListLen(arguments.queryString,'&'); i++) { 
         key = ListGetAt(arguments.queryString, i, '&'); 
         ret[ListFirst(key,'=')] = URLDecode(ListLast(key,"=")); 
        } 
    
        return ret; 
    } 
    
+0

感謝一百萬。你只是寫了我所需要的。我想知道,如果它沒有授予任何權限,那麼secret_key的用法是什麼。我被綁定從https://developers.facebook.com/tools/access_token硬編碼的令牌。它的作品,但沒有建議。我浪費了足夠的時間。我不知道如何感謝你。乾杯。 – sakibmoon

+0

我曾考慮將信息存儲在數據庫中,但它不會顯示最新的信息。另一個問題是,如果沒有登錄的用戶來到這個頁面,它就根本不會顯示這些信息。但有了這個問題解決了:)拇指向你。 – sakibmoon

+0

當我使用ColdFusion時,我必須弄清楚如何從返回的信息中提取數據。你可以給我任何方向,因爲我不太擅長CF結構。那麼,它似乎信息返回一個結構和主要數據在Filecontent。如何在FileContent中將'id','name'分開,因爲它們不是結構體。好吧,我想越來越多:P。我不知道爲什麼,但我不能提你。 – sakibmoon

1

基本上你想要的是一個刷新令牌,當用戶離線時可以獲得訪問令牌,不幸的是,Facebook不會提供他們了,據我所知。

要了解有關oauth2請求的更多信息,請使用https://developers.google.com/oauthplayground/來了解它,它是瞭解oauth2進程的非常好的工具。

+0

感謝您的回答。我想在沒有任何用戶交互的情況下做這個部分(不管他們以前是否登錄過)。通常,當用戶未登錄時,這會給我一個oauth錯誤消息。我不太明白**刷新令牌** – sakibmoon

+1

是什麼意思,當用戶授予您脫機訪問權時,您將獲得一個名爲'refresh token'的額外令牌。這可以根據需要生成儘可能多的訪問令牌,因爲訪問令牌已過期,所以需要獲取新的令牌,因此您需要在訪問令牌到期時獲取新令牌。 –

+1

格特,這不是Facebook已經實施 – Igy

相關問題