<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans">
	<id>https://zh-wiki.ikoula.com/index.php?action=history&amp;feed=atom&amp;title=%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8Ikoula%E7%9A%84API</id>
	<title>如何使用Ikoula的API - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://zh-wiki.ikoula.com/index.php?action=history&amp;feed=atom&amp;title=%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8Ikoula%E7%9A%84API"/>
	<link rel="alternate" type="text/html" href="https://zh-wiki.ikoula.com/index.php?title=%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8Ikoula%E7%9A%84API&amp;action=history"/>
	<updated>2026-06-04T16:00:23Z</updated>
	<subtitle>本wiki的该页面的版本历史</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://zh-wiki.ikoula.com/index.php?title=%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8Ikoula%E7%9A%84API&amp;diff=8036&amp;oldid=prev</id>
		<title>2021年2月22日 (一) 15:47 Mschmit52a93</title>
		<link rel="alternate" type="text/html" href="https://zh-wiki.ikoula.com/index.php?title=%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8Ikoula%E7%9A%84API&amp;diff=8036&amp;oldid=prev"/>
		<updated>2021-02-22T15:47:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2021年2月22日 (一) 15:47的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l81&quot; &gt;第81行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第81行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		$params['crypted_password'] = base64_encode(self::opensslEncryptPublic(self::$password));&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		$params['crypted_password'] = base64_encode(self::opensslEncryptPublic(self::$password));&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		$params['format'] = $format;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		$params['format'] = $format;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		// Fix params to lowercase for generate signature correctly&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		$params = array_change_key_case($params);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// Generate signature&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// Generate signature&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key zh_ikwiki-ik_:diff::1.12:old-8035:rev-8036 --&gt;
&lt;/table&gt;</summary>
		<author><name>Mschmit52a93</name></author>
	</entry>
	<entry>
		<id>https://zh-wiki.ikoula.com/index.php?title=%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8Ikoula%E7%9A%84API&amp;diff=8035&amp;oldid=prev</id>
		<title>Lfourrea5593：创建页面，内容为“&lt;span data-link_translate_en_title=&quot;How to use the Ikoula API&quot;  data-link_translate_en_url=&quot;How+to+use+the+Ikoula+API&quot;&gt;&lt;/span&gt;:en:How to use the Ikoula APIen:H…”</title>
		<link rel="alternate" type="text/html" href="https://zh-wiki.ikoula.com/index.php?title=%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8Ikoula%E7%9A%84API&amp;diff=8035&amp;oldid=prev"/>
		<updated>2021-02-15T14:22:44Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“&amp;lt;span data-link_translate_en_title=&amp;quot;How to use the Ikoula API&amp;quot;  data-link_translate_en_url=&amp;quot;How+to+use+the+Ikoula+API&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;a href=&quot;https://en-wiki.ikoula.com/en/How_to_use_the_Ikoula_API&quot; class=&quot;extiw&quot; title=&quot;en:How to use the Ikoula API&quot;&gt;en:How to use the Ikoula API&lt;/a&gt;en:H…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;span data-link_translate_en_title=&amp;quot;How to use the Ikoula API&amp;quot;  data-link_translate_en_url=&amp;quot;How+to+use+the+Ikoula+API&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[:en:How to use the Ikoula API]][[en:How to use the Ikoula API]]&lt;br /&gt;
&amp;lt;span data-link_translate_fr_title=&amp;quot;Comment utiliser l'API d’Ikoula&amp;quot;  data-link_translate_fr_url=&amp;quot;Comment+utiliser+l'API+d’Ikoula&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[:fr:Comment utiliser l'API d’Ikoula]][[fr:Comment utiliser l'API d’Ikoula]]&lt;br /&gt;
&amp;lt;span data-link_translate_es_title=&amp;quot;Cómo utilizar la API de Ikoula&amp;quot;  data-link_translate_es_url=&amp;quot;Cómo+utilizar+la+API+de+Ikoula&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[:es:Cómo utilizar la API de Ikoula]][[es:Cómo utilizar la API de Ikoula]]&lt;br /&gt;
&amp;lt;span data-link_translate_nl_title=&amp;quot;Hoe de Ikoula API te gebruiken?&amp;quot;  data-link_translate_nl_url=&amp;quot;Hoe+de+Ikoula+API+te+gebruiken?&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[:nl:Hoe de Ikoula API te gebruiken?]][[nl:Hoe de Ikoula API te gebruiken?]]&lt;br /&gt;
&amp;lt;span data-link_translate_it_title=&amp;quot;Come utilizzare l'API Ikoula&amp;quot;  data-link_translate_it_url=&amp;quot;Come+utilizzare+l'API+Ikoula&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[:it:Come utilizzare l'API Ikoula]][[it:Come utilizzare l'API Ikoula]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Ikoula的API产品，可让您操作及管理您帐户中的产品。 这是API URL https://api.ikoula.com&lt;br /&gt;
&lt;br /&gt;
我们每个产品都有提供文档。&lt;br /&gt;
&lt;br /&gt;
== 说明 ==&lt;br /&gt;
由于安全考量，Ikoula 的API需要使用用户名，密码和签名进行身份验证。 &amp;lt;br /&amp;gt;&lt;br /&gt;
* 用户名是用于连接到您的Ikoula帐户或Extranet的电子邮件地址，也是您 &amp;lt;span class=&amp;quot;notranslate&amp;quot;&amp;gt;'''login'''&amp;lt;/span&amp;gt;的传递参数名称；&lt;br /&gt;
* 必须使用Ikoula提供的公钥 &amp;lt;span class=&amp;quot;notranslate&amp;quot;&amp;gt;'''crypted_password'''&amp;lt;/span&amp;gt; 参数) 和base64_encode通过特定功能对密码进行加密&lt;br /&gt;
* 根据API提供的参数生成签名。&lt;br /&gt;
* 必须始终在GET中将这些参数传递给API！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''注意'''&lt;br /&gt;
&lt;br /&gt;
例如，对于您的API测试，您可以使用测试的临时用户。 在任何生产环境或非短期环境中，使用带有Ikoula公钥的密码加密都是不可少的。&lt;br /&gt;
如果要通过脚本或程序使用API调用，建议您为此目的创建一个专用用户，而不要使用传统的Extranet用户。&lt;br /&gt;
您有两种选择：&lt;br /&gt;
* 直接在Extranet帐户的主页上创建子用户（请参阅下面的WIKI，以创建子用户: [[如何创建一个子账户？]]).&lt;br /&gt;
* 如有必要，请联系我们创建Extranet用户&lt;br /&gt;
请注意提供使用者所需服务的权利。&lt;br /&gt;
&lt;br /&gt;
== 加密金钥 ==&lt;br /&gt;
&lt;br /&gt;
加密公钥的密码位于: https://api.ikoula.com/downloads/Ikoula.API.RSAKeyPub.pem&lt;br /&gt;
&lt;br /&gt;
== Wrapper PHP ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
&lt;br /&gt;
// #################################################&lt;br /&gt;
// ####    ..:: Ikoula Hosting Services ::..     ###&lt;br /&gt;
// ####	   Wrapper for https://api.ikoula.com	 ###&lt;br /&gt;
// #################################################&lt;br /&gt;
&lt;br /&gt;
class IkoulaAPI {&lt;br /&gt;
&lt;br /&gt;
   /**&lt;br /&gt;
    * Email of Ikoula account&lt;br /&gt;
    * @var string Email account&lt;br /&gt;
    */&lt;br /&gt;
    private static $email = &amp;quot;EMAIL_ACCOUNT_IKOULA&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
   /**&lt;br /&gt;
    * Password of Ikoula account&lt;br /&gt;
    * @var string Password account&lt;br /&gt;
    */&lt;br /&gt;
    private static $password = &amp;quot;PASSWORD_ACCOUNT_IKOULA&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
   /**&lt;br /&gt;
    * Ikoula API URI&lt;br /&gt;
    * @var string Password account&lt;br /&gt;
    */ &lt;br /&gt;
    private static $urlApi = &amp;quot;https://api.ikoula.com/&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
   /** Public key path for encrypt data&lt;br /&gt;
    * @var string Path of public key&lt;br /&gt;
    * @see https://api.ikoula.com/downloads/Ikoula.API.RSAKeyPub.pem&lt;br /&gt;
    */ &lt;br /&gt;
    private static $publicKeyPath = &amp;quot;/path/to/ikoula/public/key/Ikoula.API.RSAKeyPub.pem&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
    /** Fonction for request Ikoula API&lt;br /&gt;
     * @param string $webservice Webservice for data&lt;br /&gt;
     * @param string $format JSON or XML&lt;br /&gt;
     * @param string $type HTTP Type (GET/POST)&lt;br /&gt;
     * @param array $params Params to add for request&lt;br /&gt;
     */&lt;br /&gt;
     public static function requestApi($webservice, $format, $type, $params = [])&lt;br /&gt;
     {&lt;br /&gt;
		// Add connexion information&lt;br /&gt;
		$params['login'] = self::$email;&lt;br /&gt;
		$params['crypted_password'] = base64_encode(self::opensslEncryptPublic(self::$password));&lt;br /&gt;
		$params['format'] = $format;&lt;br /&gt;
&lt;br /&gt;
		// Generate signature&lt;br /&gt;
		$signature = self::createSignature($params);&lt;br /&gt;
&lt;br /&gt;
		// Add signature for call&lt;br /&gt;
		$params['signature'] = $signature;&lt;br /&gt;
&lt;br /&gt;
		// Curl init&lt;br /&gt;
		$ch = curl_init();&lt;br /&gt;
&lt;br /&gt;
		if($ch)&lt;br /&gt;
		{&lt;br /&gt;
			// Create API URI&lt;br /&gt;
			$url = self::$urlApi.$webservice;&lt;br /&gt;
	&lt;br /&gt;
			// Add type request&lt;br /&gt;
			curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $type);&lt;br /&gt;
&lt;br /&gt;
			// If parameters, we encode his &lt;br /&gt;
			if(is_array($params) &amp;amp;&amp;amp; count($params) &amp;gt; 0)&lt;br /&gt;
				$params_str = http_build_query($params);&lt;br /&gt;
&lt;br /&gt;
			// If we use post, fix params&lt;br /&gt;
			if(strcasecmp(&amp;quot;POST&amp;quot;, $type) == 0)&lt;br /&gt;
			{&lt;br /&gt;
				// Fix POST data&lt;br /&gt;
				curl_setopt($ch,CURLOPT_POST, true);&lt;br /&gt;
				curl_setopt($ch,CURLOPT_POSTFIELDS, $params_str);&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
				$url .= (strpos($url,'?') === false ? '?' : '&amp;amp;').$params_str;&lt;br /&gt;
	&lt;br /&gt;
			// Create curl info&lt;br /&gt;
			curl_setopt($ch, CURLOPT_URL, $url);&lt;br /&gt;
			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);&lt;br /&gt;
			curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);&lt;br /&gt;
			curl_setopt($ch, CURLOPT_HEADER, 1);&lt;br /&gt;
			curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);&lt;br /&gt;
			curl_setopt($ch, CURLOPT_HEADER, false);&lt;br /&gt;
	&lt;br /&gt;
			// Exec request&lt;br /&gt;
			$data = curl_exec($ch);&lt;br /&gt;
	&lt;br /&gt;
			// Close curl object&lt;br /&gt;
			curl_close($ch);&lt;br /&gt;
	&lt;br /&gt;
			// Return response&lt;br /&gt;
			return($data);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return null;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /** Create signature with params&lt;br /&gt;
     * @param array $params Params to add for request&lt;br /&gt;
     * @return string Signature encoded&lt;br /&gt;
     */&lt;br /&gt;
    private static function createSignature($params = [])&lt;br /&gt;
    {&lt;br /&gt;
        // Signature to send&lt;br /&gt;
        $signature = null;&lt;br /&gt;
&lt;br /&gt;
        // Verify parameters&lt;br /&gt;
        if (count($params) &amp;gt; 0)&lt;br /&gt;
        {&lt;br /&gt;
            // Sort params&lt;br /&gt;
            ksort($params);&lt;br /&gt;
            &lt;br /&gt;
            // Encode params&lt;br /&gt;
            $query = http_build_query($params);&lt;br /&gt;
&lt;br /&gt;
            // Encode &amp;quot;plus &amp;quot;+&amp;quot;&lt;br /&gt;
            $query = str_replace(&amp;quot;+&amp;quot;, &amp;quot;%20&amp;quot;, $query);&lt;br /&gt;
&lt;br /&gt;
            // Transform in lowercase&lt;br /&gt;
            $query = strtolower($query);&lt;br /&gt;
&lt;br /&gt;
            $public_key = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // Verify if key file is present&lt;br /&gt;
            if (file_exists(self::$publicKeyPath))&lt;br /&gt;
            {&lt;br /&gt;
				// Get public key&lt;br /&gt;
                $public_key = trim(&lt;br /&gt;
                        str_replace(&lt;br /&gt;
                                array(&amp;quot;\n&amp;quot;, '-----BEGIN PUBLIC KEY-----','-----END PUBLIC KEY-----'), &lt;br /&gt;
                                array('', '', ''), &lt;br /&gt;
                                file_get_contents(self::$publicKeyPath)&lt;br /&gt;
                            )&lt;br /&gt;
                        );&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
   			// SHA1 hash&lt;br /&gt;
            $hash = hash_hmac(&amp;quot;SHA1&amp;quot;, $query, $public_key, true);&lt;br /&gt;
&lt;br /&gt;
    		// base64 encode&lt;br /&gt;
            $signature = base64_encode($hash);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    	return $signature;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/** Fonction for crypt Ikoula password&lt;br /&gt;
	 * @param string $password Ikoula account password&lt;br /&gt;
	 * @return mixed Ikoula password encrypted, null if error&lt;br /&gt;
	 */&lt;br /&gt;
	private static function opensslEncryptPublic($password)&lt;br /&gt;
	{&lt;br /&gt;
		// Verify if key file exist&lt;br /&gt;
		if(file_exists(self::$publicKeyPath))&lt;br /&gt;
		{&lt;br /&gt;
			 // Verify if password is not empty&lt;br /&gt;
 			if(!empty($password))&lt;br /&gt;
			{&lt;br /&gt;
				// Get file content&lt;br /&gt;
				$publicKey = openssl_pkey_get_public('file://'.realpath(self::$publicKeyPath));&lt;br /&gt;
	&lt;br /&gt;
				// If we get file content without error&lt;br /&gt;
				if ($publicKey !== FALSE)      &lt;br /&gt;
				{&lt;br /&gt;
					// Encrypt password&lt;br /&gt;
					if(openssl_public_encrypt($password, $crypted, $publicKey) === TRUE)&lt;br /&gt;
						return $crypted;&lt;br /&gt;
					else&lt;br /&gt;
						return NULL;&lt;br /&gt;
				}&lt;br /&gt;
				else&lt;br /&gt;
					return NULL;&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
				return NULL;&lt;br /&gt;
		}&lt;br /&gt;
		else&lt;br /&gt;
			return NULL;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用例 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Fix JSON header&lt;br /&gt;
header(&amp;quot;Content-type: application/json&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Get Exch schema for prestation&lt;br /&gt;
echo IkoulaAPI::requestApi(&amp;quot;wsexch/schema-subscr&amp;quot;, &amp;quot;json&amp;quot;, &amp;quot;GET&amp;quot;, ['subscr_id' =&amp;gt; 999999999]);&lt;br /&gt;
&lt;br /&gt;
// Get Flex VM for Ikoula Account&lt;br /&gt;
echo IkoulaAPI::requestApi(&amp;quot;wsflex/list&amp;quot;, &amp;quot;json&amp;quot;, &amp;quot;GET&amp;quot;, []);&lt;br /&gt;
&lt;br /&gt;
// Get Flex VM for Ikoula Account&lt;br /&gt;
echo IkoulaAPI::requestApi(&amp;quot;wsflex/list&amp;quot;, &amp;quot;json&amp;quot;, &amp;quot;GET&amp;quot;, []);&lt;br /&gt;
&lt;br /&gt;
// Get Platform list&lt;br /&gt;
echo IkoulaAPI::requestApi(&amp;quot;wsplatform/list&amp;quot;, &amp;quot;json&amp;quot;, &amp;quot;GET&amp;quot;, []);&lt;br /&gt;
&lt;br /&gt;
// Get Platform dossiers&lt;br /&gt;
echo IkoulaAPI::requestApi(&amp;quot;wsplatform/dossiers&amp;quot;, &amp;quot;json&amp;quot;, &amp;quot;GET&amp;quot;, ['platform_id' =&amp;gt; 999999999]);&lt;br /&gt;
&lt;br /&gt;
// Get Billing conso for CloudStack prestation&lt;br /&gt;
echo IkoulaAPI::requestApi(&amp;quot;wscs/conso-for-billing&amp;quot;, &amp;quot;json&amp;quot;, &amp;quot;GET&amp;quot;, ['subscr_id' =&amp;gt; '999999999', 'billing_id' =&amp;gt; '1']);&lt;br /&gt;
&lt;br /&gt;
// Reboot server&lt;br /&gt;
echo IkoulaAPI::requestApi(&amp;quot;wsds/reboot-apc-request&amp;quot;, &amp;quot;json&amp;quot;, &amp;quot;GET&amp;quot;, ['server_ip' =&amp;gt; 'XXX.XXX.XXX.XXX', 'tempo' =&amp;gt; '3']);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 增加功能 ==&lt;br /&gt;
&lt;br /&gt;
如果有功能要求，请联系技术支持。&lt;/div&gt;</summary>
		<author><name>Lfourrea5593</name></author>
	</entry>
</feed>