2010-08-10 38 views
1

當我對用戶進行身份驗證時,身份驗證後不會重定向下一個參數。相反,它將用戶重定向到「Canvas Callback URL」。如果我不給convas回調url。那麼它會給出錯誤 實驗發生錯誤。請稍後再試。 API錯誤代碼:100 API錯誤說明:無效參數 錯誤消息:next不屬於應用程序。Facebook無法重定向下一個參數

另一方面,如果用戶不能允許我的應用程序,那麼它重定向下一個參數。

我進行身份驗證網址是:

https://login.facebook.com/login.php?api_key=**KEY**&v=1.0&popup=1&next=**NEXT**& 
next_cancel=**NEXT_CANCEL**&skipcookie=1 

我嘗試這個在localhost上。

任何人都有想法嗎?

+0

你想做什麼?從用戶獲取權限還是什麼? – Sarfraz 2010-08-10 09:00:16

+0

是的。我想獲得權限。 – qulzam 2010-08-10 09:28:01

+0

第一步,用戶授權我的應用程序。授權後它不會重定向下一個參數 – qulzam 2010-08-10 10:10:03

回答

2

嘗試使用這個網址,而不是獲得權限:

$facebook->redirect('https://graph.facebook.com/oauth/authorize? 
client_id=[YOUR APP ID]& 
redirect_uri=[YOUR APP URL]& 
scope=publish_stream, offline_access'); 

更換[YOUR APP ID]與應用程序ID,您可以從創建了Facebook開發者部分網站的應用程序設置見。還請將[YOUR APP URL]替換爲您的應用網址。

而且$facebook變量是通過啓動Facebook的客戶端,能夠得到一個:

$facebook = new Facebook($appapikey, $appsecret); 
+0

其實我使用c#facebook SDK。首先要獲得authentication_token,以便獲得facebook會話密鑰並將其存儲到數據庫以供進一步使用。 ConnectSession _connectSession = new ConnectSession(fbApi_key,fbSecret_key);
Facebook.Rest.Api _facebook_Api = new Facebook.Rest.Api(_connectSession); session_info session = facebook_Api.Auth.GetSession(auth_token); _facebook_Api.Session.SessionKey = session.session_key; – qulzam 2010-08-10 10:06:17

+0

然後重定向到那個URL我已經張貼你在C#中做的任何方式。 – Sarfraz 2010-08-10 10:10:42

0

是的,它總是重定向到URL帆布,而不是應用程序的URL。你只需要創建你自己的服務器端重定向,將用戶重定向到應用程序url。

您可以通過查看請求參數,在需要手動重定向的授權之後,從常規應用程序調用中分離常規應用程序調用。授權後,您將得到一些像在auth_token這樣的常規請求中不存在的獨特參數。如果這些參數存在 - 這意味着它是授權重定向,並且您需要將用戶發送迴應用程序url。