2011-09-27 32 views
0

我們將用戶重定向到以下網址在手機上的應用程序授權登錄的問題後重定向:Facebook的OAuth的對話框中移動觸摸網站

https://m.facebook.com/dialog/oauth?client_id=XXXXXX&redirect_uri=http://www.server.com/callback.php&scope=offline_access,user_likes,publish_stream,publish_checkins,user_checkins&display=wap

如果用戶登錄到Facebook的他/她的手機上,沒問題,Facebook自動重定向到oauth對話框頁面。

如果用戶未登錄,Facebook會要求他們先登錄。
在wap站點(諾基亞手機)上,登錄後重定向到oauth對話框,沒有任何問題。 但在觸控網站(iPhone)上,它爲URL添加垃圾郵件,將用戶重定向到他/她的Facebook主頁。

即使對於此問題,網頁上的display = wap參數也無濟於事。

關於如何解決這個問題的任何想法?

謝謝

+0

是在網址片段(哈希)的'access_token'?如果是這樣,聽起來像你有某種方式調用oAuth 2.0的客戶端流。你可以在這裏閱讀http://developers.facebook.com/docs/authentication/ – markdsievers

+0

不,它重定向不回調URL,但http://m.facebook.com/home.php?__user=10000215445XXX –

+0

Ive had過去當一個sanbdoxed應用程序正在驗證未經批准的開發人員時的行爲。否則,你是否嘗試過使用iPhone的display = touch? – markdsievers

回答

0

我經歷了同樣的問題,有很多麻煩隔離它,因爲它在Chrome中工作的桌面上,但在使用iPhone的Safari瀏覽器沒有。

我在redirect_url參數周圍做了一個urlencode,並將顯示設置爲touch。因此,使用上面的鏈接作爲一個例子,我想試試這個:

https://m.facebook.com/dialog/oauth?client_id=XXXXXX&redirect_uri=http%3A%2F%2Fwww.server.com%2Fcallback.php&scope=offline_access,user_likes,publish_stream,publish_checkins,user_checkins&display=touch

我真誠地希望爲你的作品。這似乎給我帶來了運氣。

1

其實,這是一個更清潔的解決方案。 (我還沒有看到對getLoginUrl的API,在我以前的帖子的時間。http://developers.facebook.com/docs/reference/php/facebook-getLoginUrl

require_once("facebook.php"); 

$config = array(
    "appId" => APP_ID, 
    "secret" => APP_SECRET 
); 

$facebook = new Facebook($config); 

$params = array(
    "scope" => "offline_access,user_likes,publish_stream,publish_checkins,user_checkins", 
    "redirect_uri" => "http://www.server.com/callback.php", 
    "display" => "touch" 
); 

$url = $facebook->getLoginUrl($params); 

header("Location: $url");