2012-05-22 121 views
0

我讀過左右,但我不能因此在這裏找到任何類似的問題去...允許應用程序配置內部網站的網址以及網絡可見網站網址

我有一個Facebook應用程序,它是配置和工作正常,讓我的網站URL爲:

http://adminpanel.its.a.very.long.url.mywebsite.com 

這是配置爲應用程序配置中的'站點URL',它工作正常。

然而,該網站還與DNS,使我們能夠使用

http://adminpanel/ 

的問題是,Facebook的應用程序不會允許a'redirect_uri」是用我們的內部網絡上

http://adminpanel/ 

並且因以下原因而失敗:

API錯誤代碼:191 API錯誤描述:指定的URL不屬於應用程序 錯誤消息:無效的redirect_uri:應用程序配置不允許給定URL。

是否有可能允許提前兩

http://adminpanel.its.a.very.long.url.mywebsite.com 

http://adminpanel/ 

感謝,

奧利

更新:我不能使用兩個應用程序作爲我依靠'添加頁面標籤對話'來添加我的appl提供各種頁面。

我需要的是這兩個重定向(由'下一個'參數指定)被Facebook允許。

https://www.facebook.com/dialog/pagetab?app_id=12345678&display=popup&next=http://adminpanel/Success

https://www.facebook.com/dialog/pagetab?app_id=12345678&display=popup&next=http://adminpanel.its.a.very.long.url.mywebsite.com/Success

回答

0

一個共同的問題,而且它很容易修復。看看我的PHP代碼如下:

if (strstr('adminpanel', $_SERVER['HTTP_HOST'])) { 
    // this is the localhost settings 

    $facebook = new Facebook(array(
     'appId' => 'xxx', 
     'secret' => 'xxx', 
    )); 

    $app_url = 'http://adminpanel/'; 
    $fb_url = 'http://apps.facebook.com/xxx/'; 

    // other settings can go here too 

} else { 
    // this is the main/live site settings 

    $facebook = new Facebook(array(
     'appId' => 'yyy', 
     'secret' => 'yyy', 
    )); 

    $app_url = 'http://adminpanel.its.a.very.long.url.mywebsite.com'; 
    $fb_url = 'http://apps.facebook.com/yyy'; 

    // other settings can go here too 

} 

問題解決!

該代碼檢查以查看哪個host正在運行併爲每個設備加載正確的設置。您需要在Facebook上擁有兩個不同版本的應用程序。這將允許您分別配置每個應用程序的URL(如上面的PHP代碼)。

如果您使用的是其他語言,您可以通過檢測host並將您的配置設置置於條件語句的相關部分中,輕鬆地做同樣的事情。它甚至可以讓你配置多個(即多於2個)環境。

+0

感謝您花時間回覆,但我認爲您的答案是針對不同情況的解決方案。我在這個問題中增加了更多細節,希望能夠清楚我的意圖。乾杯! –

+0

對兩個位置使用一個應用程序不是Facebook支持的。您可以嘗試將兩個網址添加到應用設置中的「應用域名」字段,但Facebook只會將用戶重定向迴應用設置中列出的網址。添加多個域可能會解決問題。 –

+0

是的,我已經嘗試將http:// adminpanel(並且只是'adminpanel')添加到App Domain部分,但是Facebook不允許它。 應用程序域:adminpanel不是有效的域。 –