簡體   English   中英

如何在Drupal多站點中管理Facebook連接?

[英]How to manage Facebook connect in Drupal multisite?

我有一個Drupal多站點安裝。 這不是常見的多站點安裝。 長話短說:我有一個單一的數據庫,一個單一的setting.php,主題的更改由模塊ThemeKey根據站點域進行管理。 drupal安裝使兩個站點使用不同的主題,並且我使用Apache Server Alias設法為它們擁有兩個不同的域,因此我有兩個站點www.foo.com和www.bar.com。

現在,我正在使用模塊FBOauth管理Facebook注冊,該模塊僅允許輸入一個Facebook應用ID。 在第一個站點,例如www.foo.com,facebook注冊非常有效,因為它與fboauth知道的facebook應用程序連接。 在第二個網站www.bar.com上,facebook的注冊無效,這使我只能將一個域(或它的子域,不是這種情況)添加到單個facebook應用中。 我的意思是,在Facebook應用程序中,我可以輸入www.foo.com,但不能輸入www.bar.com,因此,如果我嘗試從www.bar.com注冊,facebook會拋出“不允許使用域名”錯誤。

我認為解決此問題的正確方法是為www.bar.com打開第二個Facebook應用程序,但是fbaouth允許我僅輸入一個應用程序ID。 我該如何克服呢?

編輯:有兩個變量fboauth_id和fboauth_secret。 覆蓋這些可以解決問題,但是我無法在setting.php中做到,還有另一種方法嗎?

RAW解決方案:我解決了該問題,修改了fboauth模塊代碼。 我創建了兩個函數:一個函數返回一個應用程序ID,另一個函數返回一個應用程序密碼,具體取決於我所在的域。然后我替換了每個“ variable_get('fboauth_id','')”和“ variable_get('fboauth_secret','帶有我自定義功能的模塊文件中的')“。 它並不優雅,我仍然對更好的解決方案感興趣。

function fboauth_get_app_id_depending_on_domain(){
  $server_name = ($_SERVER['SERVER_NAME']);
  $server_uri =($_SERVER['REQUEST_URI']); 
  if($server_name=='www.bar.com'){
     $app_id='1234567890';
  }else{
     $app_id=variable_get('fboauth_id', '');
  }
 return $app_id;
}

function fboauth_get_app_secret_depending_on_domain(){
 $server_name = ($_SERVER['SERVER_NAME']);
 $server_uri =($_SERVER['REQUEST_URI']); 
 if($server_name=='www.bar.com'){
      $app_secret='1234567890';
 }else{
     $app_secret=variable_get('fboauth_secret', '');
 }
 return $app_secret;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM