我正在使用Facebook PHP SDK。我根本不想使用JS SDK。Facebook PHP SDK使用獨立 - Facebook會話/ Cookie如何工作?
因爲getUser();從SDK可以返回一個用戶ID,即使用戶沒有登錄,我都選擇了使用try/catch語句來檢查,如果用戶登錄。
try
{
$me = $CI->facebook->api('/me');
$CI->our_fb['is_fb']='YES';
echo "hello";
}
catch(FacebookApiException $e)
{
echo "catch";
}
本聲明包含在全球包括我所有文件的文件(爲簡單起見)。
因此,根據情況,我生成一個Facebook登錄URL。預期的功能是用戶登錄到Facebook,授權應用程序,返回到設置在登錄URL中的重定向URI,try語句將在該點執行,並且$ CI-> our_fb ['is_fb']將被設置。
然而這並未發生。
如果用戶已經登錄到Facebook並且該應用程序已獲得授權,則該功能完美無缺。 SUCCESS
如果用戶沒有登錄到Facebook,一旦重定向變量未設置。失敗
如果用戶已登錄,但重定向後未授權應用程序,則該變量未設置。失敗。
在後兩種情況下,如果您只是刷新頁面,變量設置爲 - SUCCESS。刷新頁面是不必要的/毫無意義的額外努力。
我的問題是,如果您需要登錄FB /或授權應用程序,例如您第一次使用FB登錄時,您有一個額外的不必要的刷新,我不知道爲什麼。
我懷疑這是與cookie/session有關嗎?哪一個保存我假設的訪問令牌會自動返回/傳遞給SDK,而不是同時設置?
任何人有任何想法?
當你說「變量沒有設置」時,你是否也看到了「catch」?換句話說,是否拋出異常? – Madbreaks
是的。拋出異常。對不清楚的道歉。 –
你是否檢查過異常,看看它是什麼?例如'echo print_r($ e,true);'在catch塊中? – Madbreaks