2011-09-20 96 views
2

我正在開發一個在Facebook中的Canvas應用程序在PHP中。當用戶允許它被重定向到我的網站時,如幫助頁面https://developers.facebook.com/docs/reference/dialogs/oauth/中的說法。Facebook中的Oauth對話重定向php。如何重定向到應用程序頁面

但我不想被重定向到我的網站,我想被重定向到包含我的網站在iframe中的facebook頁面。我怎樣才能做到這一點?它應該很直接。

If the user clicks "Allow", they will be directed to 
http://www.example.com/response#access_token=...& expires_in=3600 
If the user clicks "Don't Allow", they will be directed to 
http://www.example.com/response? 
    error=access_denied& 
    error_description=The+user+denied+your+request. 

我不想去example.com但facebook.com/app/ID_APP包含example.com

編輯:

弗洛伊德威爾伯恩的回答後,我試着把我的應用程序頁面,但它不起作用。它給了我一個錯誤。而右邊的URL看起來像這樣

https://www.facebook.com/dialog/permissions.request?app_id=53434949999999&display/=page&next=http%3A%2F%2Fwww.example.com%2Fapp%2F%3Fnext_url%3Dhttp%253A%252F%252Fapps.facebook.com%28403a2224870942%252F&response_type=code&fbconnect=1&perms=email%2Cread_stream

(我們可以看到我的網站的網址example.com與該用戶將b。從我的站點頁面重定向參數「next_url」編碼)

的錯誤方式的URL看起來像這樣(就起了變化我的地盤我的Facebook應用程序URL)

https://www.facebook.com/dialog/oauth?client_id=185340534870942&redirect_uri=http%3A%2F%2Fapps.facebook.com%2F534349499999s992%2Fhello.php

所以我的解決方案我我所評論的。用戶訪問我的網站並重定向到Facebook應用程序URL。

任何人都可以猜測爲什麼Floyd Wilburn的解決方案對我無效?

感謝

+1

看看你的網址上面,我想我的答案可能並不清楚 - 'yourapp'部分不是app_id,它是畫布頁面名稱(應用程序命名空間設置)。 –

+0

您設置「http://apps.facebook.com/pagename/hello.php」的重定向問題在於,您錯過了對應用的引用,通常是http://apps.facebook.com/pages/yourpage /?sk = app_ [你的應用程序ID] - - 這將加載你已經放置的任何畫布網址。畫布網址是您自己網站上的目錄(不在fb上)。所以如果我把它放在/ var/www/html/myapp中,我會期待returend authenticated用戶通過myapp/index.php來。 –

回答

2

只需設置REDIRECT_URI參數在http://apps.facebook.com/yourapp/somepage點,它會去那裏來代替。

+0

如果您要將它們發送到的地方是由您的應用「擁有」的網址,這是絕對正確的 – Igy

+0

謝謝,我會盡力。我嘗試了facebook.com/app/ID_APP,但我沒有被允許。此外,我發現另一個解決方案將我的網站的example.com重定向到facebook.com/app/ID_APP – de3

+0

@ de3以及該解決方案是什麼?請分享 – Volatil3