2010-10-29 64 views
0

我有一個perl CGI腳本執行Facebook授權流程,如http://developers.facebook.com/docs/authentication/所述。當我在瀏覽器中訪問我的Facebook應用程序頁面時,我的腳本接收來自Facebook的初始查詢,驗證signed_request,然後將重定向發送到以下url:Facebook OAuth重定向顯示FB圖像/鏈接而不是授權頁面

https://graph.facebook.com/oauth/授權?CLIENT_ID = NNN &範圍= [...] &顯示=頁& REDIRECT_URI = HTTP%3A%2F%2Fmydomain.com%3A8080%2Fperl%2Fdev%2Ffb.pl%3Fcallback%3D1

的REDIRECT_URI是我在應用程序配置中定義爲我的網站,它被接受得很好。但瀏覽器然後顯示的是一個大的Facebook徽標圖像和它下面的鏈接,它們都是:

http://www.facebook.com/connect/uiserver.php?display=page & next = https:%3A%2F%2Fgraph.facebook.com%2Foauth%2Fauthorize_success%3Fredirect_uri%3D [...]

當我點擊那個我得到我想要的,「請求權限」頁面,要求用戶授權應用程序。一切從這裏正常進行。

那麼,爲什麼我會得到最初的FB徽標頁面,而不是直接進入授權頁面?

+0

如何執行重定向到Facebook授權URI? – 2010-10-30 07:51:08

+0

對不起,沒有看到您的評論。我只是「打印$ query->重定向($ url);」 $ url在上面,$ query是CGI查詢。 – 2010-11-05 16:42:43

回答

1

有人在Facebook論壇(http://forum.developers.facebook.net/viewtopic.php?pid=290957#p290957)回答了這個問題,具有諷刺意味的是這裏有一個參考可以回到另一個問題。你只需要使用javascript做一個客戶端重定向,所以你的CGI腳本的輸出應該如下所示:

Content-Type: text/html 
Content-Length: 344 

<script>top.location="https://graph.facebook.com/oauth/authorize?client_id=[...]";</script> 
相關問題