2012-07-23 55 views
0

好吧,所以基本上我正在構建一個應用程序,以連接到activecollab框架上的xero。我正在測試David Pitman創建的xeroapi php腳本。而我只是試圖找出爲什麼我的瀏覽器The connection to the server was reset while the page was loading.響應(但不產生任何liveheaders也不firebug挑不出什麼了)...XERO-API正在使用活動服務器,但在測試服務器上失敗

thumb http://iforce.co.nz/i/iq5bxw0r.5gz.png

這裏是一個代碼段,該正在使用。 (一切都已經安裝使用XERO阿比預覽和OpenSSL之前

define('XERO_KEY','my-key-here'); //hidden for privacy reasons 
    define('XERO_SECRET','my-key-here'); //hidden for privacy reasons 
    define('XERO_PUBLIC_KEY_PATH', 'path/to/public.key'); 
    define('XERO_PRIVATE_KEY_PATH', 'path/to/privatekey.pem'); 

    $xero = new Xero(XERO_KEY, XERO_SECRET, XERO_PUBLIC_KEY_PATH, XERO_PRIVATE_KEY_PATH, 'xml'); 
    $organisation = $xero->organisation; 

    //echo the results back 
    if (is_object($organisation)) { 
    //use this to see the source code if the $format option is "xml" 
    echo htmlentities($organisation->asXML()) . "<hr />"; 
    } else { 
    //use this to see the source code if the $format option is "json" or not specified 
    echo json_encode($organisation) . "<hr />"; 
    } 

而我的問題是...是,error_log中(PHP)不從警告顯示任何錯誤的一部分:

2012-07-23 21:59:42 Notice : Undefined index: port (at C:\xampp\htdocs\ac3\activecollab\3.1.10\modules\xero_invoice_manager\lib\xero\xero.class.php on 644 line) 

上xero.class.php線644

/** 
* parses the url and rebuilds it to be 
* scheme://host/path 
*/ 
public function get_normalized_http_url() { 
$parts = parse_url($this->http_url); 

$port = @$parts['port']; //this line says its undefined 
$scheme = $parts['scheme']; 
$host = $parts['host']; 
$path = @$parts['path']; 

$port or $port = ($scheme == 'https') ? '443' : '80'; 

if (($scheme == 'https' && $port != '443') 
    || ($scheme == 'http' && $port != '80')) { 
    $host = "$host:$port"; 
} 
return "$scheme://$host$path"; 
} 

將代碼從調查被我的print_r的結果發現在preformatted tag是..

Array 
(
    [scheme] => https 
    [host] => api.xero.com 
    [path] => /api.xro/2.0/Organisation 
) 

同樣的信息是一個活生生的服務器(在過去的幾個月中)上使用。但xeroapi類不能在測試服務器上工作,有沒有人有任何建議,爲什麼它不連接?我在port 80PHP Version 5.3.8上使用apache運行XAMPP Control Panel

回答

1

我不確定您的端口問題。

但是,Xero API需要OAuth設置,這大概是在Xero類中完成的。部分OAuth的東西是設置一個回調域,這需要你用Xero註冊一個回調域。 Xero允許您使用註冊域的子域,並假設Xero類使用請求信息來設置正確的域。

在本地主機上,該域是localhost,它不是子域。您可以註冊本地主機,或者做我所做的事情(因爲我無權訪問應用程序帳戶),並在主機文件中設置特殊的本地子域。

所以如果你使用example.com,那麼一個好的'本地'域是local.example.com。希望有所幫助。

+0

不完全,'127.0.0.1 test.mydomain.com',我也通過在我的web服務器中使用虛擬服務器來管理多個項目。 – Aatch 2012-07-23 22:34:44

+0

謝謝,很多..我會試試這個,當我從大學回來,如果它的工作:P我會標記你的答案選擇:)(但現在+1代表) – Killrawr 2012-07-23 22:35:29

+0

謝謝!以提供更多關於你的答案的信息:) – Killrawr 2012-07-24 05:20:28

相關問題