Odoo:如何通过XML-RPC API查找Odoo版本?
Odoo: How to find Odoo version through XML-RPC API?
我正在编写一个 PHP 库来访问 Odoo XML-RPC API 我需要知道我正在与之交谈的服务器的 Odoo 版本 - 但是我不知道如何确定版本。是否有某个模型可以告诉我或我该怎么做?
更新
我以为我已经弄明白了。 ir.module.module
模型将为您提供所有已安装模块的列表。然后在 base
模块中查看 installed_version
属性。 但是 这需要管理员权限!我需要以通常使用 API.
的普通用户身份执行此操作
但是对于任何拥有这种访问权限的人来说,这就是您要做的。使用 ripcord(参见示例 ),您将使用此行仅检索 base
模块:
$models->execute_kw($db, $username, $password, 'ir.module.module', 'search_read', array(array(array('name', '=', 'base'))) );
即使没有来自 API 公共端点的身份验证,您也可以获得 Odoo 版本。请参阅 https://www.odoo.com/documentation/12.0/webservices/odoo.html 标题为“登录”的文档和那里的第一个代码示例。您可以在那里找到 server_version 属性。
$common = ripcord::client($url.'/xmlrpc/2/common');
$common->version();
以下代码有效并且在多台服务器上测试工作正常。
$url = 'https://###.###.###.##:8069';
$db = 'demo';
$username = 'user_name';
$password = 'password';
$common = ripcord::client("$url/xmlrpc/2/common");
$models = ripcord::client("$url/xmlrpc/2/object");
$common->version();
$uid = $common->authenticate($db, $username, $password, array());
These examples use the Ripcord library, which provides a simple
XML-RPC API. Ripcord requires that XML-RPC support be enabled in your
PHP installation.
Since calls are performed over HTTPS, it also requires that the
OpenSSL extension be enabled.
我正在编写一个 PHP 库来访问 Odoo XML-RPC API 我需要知道我正在与之交谈的服务器的 Odoo 版本 - 但是我不知道如何确定版本。是否有某个模型可以告诉我或我该怎么做?
更新
我以为我已经弄明白了。 ir.module.module
模型将为您提供所有已安装模块的列表。然后在 base
模块中查看 installed_version
属性。 但是 这需要管理员权限!我需要以通常使用 API.
但是对于任何拥有这种访问权限的人来说,这就是您要做的。使用 ripcord(参见示例 base
模块:
$models->execute_kw($db, $username, $password, 'ir.module.module', 'search_read', array(array(array('name', '=', 'base'))) );
即使没有来自 API 公共端点的身份验证,您也可以获得 Odoo 版本。请参阅 https://www.odoo.com/documentation/12.0/webservices/odoo.html 标题为“登录”的文档和那里的第一个代码示例。您可以在那里找到 server_version 属性。
$common = ripcord::client($url.'/xmlrpc/2/common');
$common->version();
以下代码有效并且在多台服务器上测试工作正常。
$url = 'https://###.###.###.##:8069';
$db = 'demo';
$username = 'user_name';
$password = 'password';
$common = ripcord::client("$url/xmlrpc/2/common");
$models = ripcord::client("$url/xmlrpc/2/object");
$common->version();
$uid = $common->authenticate($db, $username, $password, array());
These examples use the Ripcord library, which provides a simple XML-RPC API. Ripcord requires that XML-RPC support be enabled in your PHP installation.
Since calls are performed over HTTPS, it also requires that the OpenSSL extension be enabled.