我有用戶授予的離線訪問權限,會話過期= 0,因此它永不過期。我已將所有會話值(如access_code等)存儲在數據庫中。在存儲這些值之後,我可以立即閱讀新聞源。 2秒後,當我嘗試使用這些存儲的會話值讀取用戶的新聞傳送時,它不起作用。 OAuthException:激活的訪問令牌必須用於查詢當前用戶Facebook API離線新聞傳送訪問
在PHP中,我使用這條線來讀取新聞源信息:$result=$facebook->api("/me/home?access_token=".$access_token);
奇怪的是,當我輸入接入碼的網址它正在工作:
https://graph.facebook.com/me/home?access_token= $ access_token。
記住,當用戶給你的權限,你得到這個網址:http://example.it/home/newsfeed.php?perms=<permissionlist>&selected_profiles=<uid>&installed=1&session={session_key:<session_key>,uid:<uid>,expires:0,secret:<secret>,access_token:<firstpart>|<secondpart>|<third part>,sig:<sig>}
我的允許名單是這樣的:
「friends_about_me,friends_education_history,friends_likes,friends_interests,friends_location, friends_religion_politics, friends_work_history,publish_stream,friends_activities,friends_events, friends_hometown,friends_location,user_interests,user_likes,user_events, user_about_me,user_status ,user_work_history,read_requests,read_stream,offline_access,user_religion_politics,電子郵件,user_groups「;
當我輸入上面的任何瀏覽器的URL ,它給我的UID的新聞提要,因爲newsfeed.php有PHP代碼輸出的新聞源。用戶是否登錄無關緊要。 IE甚至下載json結果作爲文件
所以會話信息沒有真正過期,它正在工作。但不知何故,我無法讓Facebook相信我有正確的憑據來閱讀新聞源。
任何幫助,非常感謝。請寫下我如何重建會話價值並讓Facebook相信我。
我的最終解決方案可以在我更新的博客上找到:http://akcora.wordpress.com/
我也忘了提,即使進給不工作,我仍然可以發佈狀態信息到用戶的個人資料。這沒有任何意義。我幾乎可以肯定,我在編碼方面犯了一個錯誤。例如,這是可以工作的狀態發佈代碼:
$attachment = array(
'access_token' => $access_token,
'message' => 'Did a Test Post :',
'name' => "Offline posting using stored tokens",
'link' => "http:somelink.com",
'description' => "This post was made using a stored access token",
'picture'=>"some.jpg",
);
$ret_code=$facebook->api('/'.$target.'/feed', 'POST', $attachment);
但是獲取提要不起作用。安全性應該比張貼新聞源更緊張,對嗎?
您使用的庫函數時URL編碼的訪問令牌?在使用該功能之前可能需要對其進行編碼。 – 2011-01-06 02:57:01