XERO-API正在使用实时服务器,但在测试服务器上失败

时间:2012-07-23 22:14:13

标签: php activecollab

好的,基本上我构建一个应用程序来连接activecollab框架上的xero。我正在测试David Pitman创建的xeroapi php脚本。我只是试图找出我的浏览器为什么用The connection to the server was reset while the page was loading.回复(但是没有生成任何liveheaders,也没有firebug选择任何内容)... < / p>

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

这是一段正在使用的代码片段。 (之前已使用XERO Api预览器和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找到$parts preformatted tag的{​​{1}}的结果...

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

在实时服务器上使用相同的信息(过去几个月)。但是xeroapi类没有在测试服务器上工作,有没有人有任何关于它为什么不连接的建议?我在XAMPP Control Panelport 80上使用apache运行PHP Version 5.3.8

1 个答案:

答案 0 :(得分:1)

我不确定您的端口问题。

但是,Xero API需要进行OAuth设置,这可能是在Xero课程中为您完成的。 OAuth的部分内容是设置回调域,这需要您使用Xero注册回调域。 Xero允许您使用已注册域的子域,我假设Xero类使用请求信息来设置正确的域。

在localhost上,该域是localhost,它不是子域。您可以注册localhost,或者执行我已完成的操作(因为我无权访问应用程序帐户),并在您的hosts文件中设置一个特殊的本地子域。

因此,如果您使用example.com,那么一个好的“本地”域名为local.example.com。希望有所帮助。