當用戶第一次訪問我的網站,其中包含一個Facebook應用程序,它需要他允許它,並且他被允許這樣做,然後我得到我可以轉換爲access_token的代碼。到現在爲止還挺好。Facebook的access_token:一旦用戶接受我的應用程序,我怎麼得到它?
但是,一旦用戶已經訪問過該網站,我該如何獲取令牌? 只要這個令牌第一次形成活動一切都很好。但是,如果用戶在一週前已經允許該應用並且只能再次訪問我的頁面,我該如何獲得另一個令牌?
當用戶第一次訪問我的網站,其中包含一個Facebook應用程序,它需要他允許它,並且他被允許這樣做,然後我得到我可以轉換爲access_token的代碼。到現在爲止還挺好。Facebook的access_token:一旦用戶接受我的應用程序,我怎麼得到它?
但是,一旦用戶已經訪問過該網站,我該如何獲取令牌? 只要這個令牌第一次形成活動一切都很好。但是,如果用戶在一週前已經允許該應用並且只能再次訪問我的頁面,我該如何獲得另一個令牌?
我使用cookie方法在用戶計算機上存儲access_token。
FB.init({appId: 'your app id', status: true, cookie: true, xfbml: true});
在你facebook.php文件,你需要cookieSupport設置爲true,那麼:
private $cookieSupport = true;
或者使用這裏找到get_facebook_cookie功能:Single sign-on with the JavaScript SDK
的是的access_token然後存儲在cookie稱爲「fbs_APPID」(,其有效期至)。如果你想的cookie以持續多則幾個小時,你需要問的擴展權限「offline_access」:
使您的應用程序在任何時間執行代表用戶的授權請求。默認情況下,大多數訪問令牌在短時間後過期,以確保應用程序僅在主動使用應用程序時代表用戶發出請求。此權限使我們的OAuth端點返回的訪問令牌長久存在。
使用PHP
session_start();
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => FACEBOOK_APP_ID,
'secret' => FACEBOOK_APP_SECRET,
'cookie' => true,
'domain' => 'example.com'
));
$session = $facebook->getSession();
$me = null;
// Session based API call.
if ($session) {
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
$_SESSION['me'] = $me;
$_SESSION['uid'] = $uid;
$_SESSION['session'] = $session;
} catch (FacebookApiException $e) {
error_log($e);
}
}
可通過$ _SESSION引用的access_token [ '會議'] [ 'ACCESS_TOKEN']你的應用程序中,,在fbdevtutorials.com
現在Facebook正在遷移到Oauth2,由Javascript創建的Cookie是不同的。我得到它爲我工作,並將其添加到FGraph插件的Rails叉 - https://github.com/imme5150/fgraph
其中一個技巧是,當您從cookie中存儲的「code」參數請求access_token時,您必須傳入「redirect_uri」,但你希望它是空白的。
在客戶端流程中,可以使用scope參數中的權限將用戶重定向到OAuth對話框。如果用戶已經接受了您的應用程序和權限,他將通過URI片段中的access_token重定向到您的「redirect_uri」,否則將提示所需的權限。
https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=email,read_stream&response_type=token
在服務器端的流量,你應該有「代碼」這樣你就可以兌換有關的OAuth端點上的access_token:
https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&redirect_uri=YOUR_URLclient_secret=YOUR_APP_SECRET&code=THE_CODE_FROM_ABOVE
你也可以使用此:
$access_token = $facebook->getAccessToken();
https://developers.facebook.com/docs/reference/php/facebook-getAccessToken/
用戶接受該應用後,這是不可能的 – iMeMyself 2012-10-11 07:19:09
您是否正在以任何特定語言尋找它? – Steve 2011-08-22 07:34:00