[root@dywang mod_tmp]# diff -uNwB elcentra/eblib/facebook.php ../auth/elcentra/eblib/facebook.php --- elcentra/eblib/facebook.php 2014-01-21 15:09:52.000000000 +0800 +++ ../auth/elcentra/eblib/facebook.php 2019-03-06 06:13:18.953760111 +0800 @@ -6,7 +6,7 @@ var $config; function __construct() { - $this->URL = "http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']; + $this->URL = "https://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']; } function setConfig($configArray) {
「,」
分隔欄位,以冒號「:」
指定欄位內容。但 php 內建 parse_str
解析每個欄位以「&」
隔開,且以等號「=」
指定欄位內容,所以先將 token 字串改成 parse_str
可解析的格式。
@@ -40,6 +40,10 @@ $buildUrl.="&code=".$code; $responseText = file_get_contents($buildUrl); + $responseText=str_replace(":","=",$responseText); + $responseText=str_replace(",","&",$responseText); + $responseText=str_replace(array("{","}","\""),"",$responseText); + parse_str($responseText,$responseArray); if(!isset($responseArray['access_token'])) { throw new moodle_exception("Unexpected error");
&fields=id...
指定需要的欄位。
@@ -48,11 +52,13 @@ $accessToken = $responseArray['access_token']; $buildUrl = $facebookConfig['retrieval_url']; + $buildUrl.="&fields=id,email,first_name,last_name,name,timezone,verified"; $buildUrl.="&access_token=$accessToken"; $dataResponse = file_get_contents($buildUrl); $details = json_decode($dataResponse);