我正在爲活動構建一個小網站。這個想法是將來自facebook活動的參加者添加到本網站。問題在於參加的服務需要access_token。我不希望用戶登錄到應用程序,我只想使用應用程序access_token。但這似乎並不奏效。Facebook access_token無效
我對收到的的access_token下面的PHP代碼:
// get facebook auth_token $FB_APP_ID = '****'; $FB_APP_SECRET = '***'; $token_url = "https://graph.facebook.com/oauth/access_token?client_id=" . $FB_APP_ID . "&client_secret=" . $FB_APP_SECRET . "&grant_type=client_credentials"; $app_token = file_get_contents($token_url); parse_str($app_token); // creates: $access_token
在javascript中我使用下面的代碼:
/**
* Gets all the attending Users
* @param function callback: the function to call, when data loading is ready
* @param function callback: the function to call, when data loading is broken
* @return void
*/
this.getAttending = function(callback, errorHandler)
{
FB.api('/' + this.eventId + '/attending', function(response) {
if(response.error) {
errorHandler(response.error['message']);
} else {
callback(response.data);
}
} , {access_token: facebook.accessToken});
}
我收到錯誤: 無效OAuth訪問令牌。
訪問令牌的樣子: 111737995591905 | l9e3niEMM1RsIUhwHZv3pn3c19M
用戶訪問令牌的樣子: 145634995501895 | 2.AQBcWfbvdzhloLYc.3600.1312138800.1-1146858041 | cjCkHZqquyyFyX2dY0q2YCaSyy0
當我嘗試使用用戶訪問令牌,一切工作正常。但是,當我硬編碼令牌時,這不適用於其他用戶。當我嘗試服務器爲我解析的令牌時,我會收到無效的令牌操作。有人知道這個解決方案嗎? 這是一個公共活動,我不希望用戶在他/她知道誰參加之前登錄?
這可能嗎? Thanx!
我沒有編碼access_token。這不應該是需要的,因爲我使用javascript API調用webservice,而不是使用URL。這也是我的問題:我試圖將expires查詢變量放在access_token後面。可能這被解碼並返回到一個無效的access_token。它似乎與短access_token現在工作。 – VeeWee