Maze.Guru
    Maze.Guru
    • Maze.Guru API 入门
    • 命令脚本
    • 参数介绍
    • 获取样式库信息
      GET
    • 获取款式详细信息
      GET
    • 获取上传种子图片的签名凭据
      GET
    • 获取可用积分
      GET
    • 计算喷漆费用
      POST
    • 按图像创建图像
      POST
    • 通过文本创建图像
      POST
    • 撤销绘画
      POST
    • 获取生成的图像结果
      POST
    • 高档形象
      POST
    • 获得高档结果
      POST

    Maze.Guru API 入门

    此页面将帮助您开始使用 Maze.Guru API

    认证流程#

    登录https://maze.guru/setting并获取App ID和App Key,注意:您必须是专业用户
    img
    获得ID和Key后,请务必测试身份验证过程,过程如下
    img
    1.
    创建签名原件 ,使用私钥进行SHA256withRSA签名,并进行Base64处理。(见下面的代码演示){"appId":"appId","timestamp":xxxxx}
    2.
    添加到请求头中,值为Authorization``{"secretKeyVersion":"1","appId":"appId","sign":"signature", "original": "signature original"}
    3.
    发出HTTP请求,签名过期时间在5分钟内。

    代码演示#

    Python
    from Crypto.PublicKey import RSA
    from Crypto.Hash import SHA256
    from Crypto.Signature import pkcs1_15
    import requests
    import time
    import json
    import base64
    
    
    # RSA Signature
    def rsa_sign(data, rsa_key):
        h = SHA256.new(data.encode('utf-8'))
        signature = pkcs1_15.new(rsa_key).sign(h)
        return str(base64.b64encode(signature), encoding = "utf-8")
    
    
    # RSA Verification
    def rsa_sign_verify(data, sig, rsa_key):
        try:
            h = SHA256.new(data.encode('utf-8'))
            pkcs1_15.new(rsa_key).verify(h, base64.b64decode(sig))
            ret = True
        except (ValueError, TypeError):
            ret = False
        return ret
    
    
    def test(appid):
        now = int(time.time())
        # build message
        plain_text = {
            "appId": appid,
            "timestamp": now
        }
        original = json.dumps(plain_text, separators=(',', ':'))
        print(f"original {original}")
        auth = {
            "appId": appid,
            "secretKeyVersion": "1",
            "sign": sign(original),
            "original": original
        }
        headers = {"Authorization": json.dumps(auth, separators=(',', ':'))}
        print(f"headers {headers}")
        response = requests.get(f"https://open.maze.guru/api/v1/style-base-infos", headers=headers)
        response.encoding = "utf-8"
    
    
    def sign(text):
        private_key_base64_str = 'MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKuaRcAYkmDxKObdC5YNGllsMCdnNNLE71zEmvScqAdNCBbf3gaytd5BtN9v+YdZYqXSq8WkyhfRRHGPZ/O7zQ/4I1MKK7wNTeyVmarwMfCkSxIa5coqJTV68dqWayI69pvQLYBqwfKqiMbvDY/WrvpA8uSRPSMfiJttyr7Ei/rVAgMBAAECgYA+R2IzInfVmRCYIPc4gQ7kD2C2nD1OlUyt5Wi7iDNvWuSpsJva4Hci78PeJ7xvA+DKf9f5hiIWXMuzTzGSAsGcBvY0rgghpBKfX58pL3Ete/cny4UGpBwuVWAgQo+HG4XywIti9KfWJaX8gzEdT/q81N5tOWJeVGdfECs+JDNRwQJBANJG7xdU+9XMZWmxXlm4W2WTDVGPMqPPqfy3oWiAa0Q9K5su0pIEeGEcobxF9CMWpuej5Ontxo2uM7T9h3ShFXECQQDQ6oa19wLnF5UIIAsTwNtgL2UIksQ+cEwSK/+cabkCGbCLHpuXjOUuOQIWVj73PZAAyknugF53bBbaXk9UozmlAkAFsSHbsdM3UFcWa1SwfQsMTtS3dnbadE6XpqjZ2VAOAtHhW30bsr9Hcaz3GbWoFX7jGk6h/mu3fhWsOoimIY4hAkAkWMk7G1CL+BRbp4eF1kXUhCplxXMTEeKKPtFn2xTvAp0udxLG2SJ+Wji8viCST0mgeZFHR1ooGMwZDdNrfEJpAkEApG6GgYbzqYSbxon2n2QuUif8j6XyOKpveQbLhjcCCy3BOGV1+JSYZ+iuueGBbHXnBxlfCXC8RJdhwpJjQRoV8Q=='
        public_key_base64_str = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrmkXAGJJg8Sjm3QuWDRpZbDAnZzTSxO9cxJr0nKgHTQgW394GsrXeQbTfb/mHWWKl0qvFpMoX0URxj2fzu80P+CNTCiu8DU3slZmq8DHwpEsSGuXKKiU1evHalmsiOvab0C2AasHyqojG7w2P1q76QPLkkT0jH4ibbcq+xIv61QIDAQAB'
        private_key=base64.b64decode(private_key_base64_str)
        public_key=base64.b64decode(public_key_base64_str)
    
        sign = rsa_sign(text, RSA.importKey(private_key))
        print(f"sign:{sign}")
        sign_result = rsa_sign_verify(text, sign, RSA.importKey(public_key))
        print(f"sign_result:{sign_result}")
        return sign
    
    
    if __name__ == "__main__":
        appid = 'wja0q53lmql4cm2yd1'
        test(appid)
    
     

    网关 URL(基本 URL)#

    https://open.maze.guru/api/v1

    QPS限制#

    Maze.guru 将 qps 设置为 50

    响应格式#

    正常返回
    {  
      "code": 200,  
      "msg": "",  
      "data": {}  
     }
     
    错误返回
     {
      "code": 201,
      "msg": "Signature has expired",
      "data": null
     }

    错误代码#

    错误代码错误信息
    20110001提示中含有敏感词
    20110002种子图片链接不正确或不受支持
    20110003种子图像包含敏感信息
    20110004职位不存在
    20110005作业密钥不存在
    20110007型号不存在
    20110008作业正在生成,无法撤销/加速
    20110009职位状态已更改,请刷新
    20110010积分余额不足
    20110011该作业不在队列中且无法撤销
    20010015不支持的尺寸/分辨率
    20110000文本翻译失败
    1000错误未知
    1001请求参数无效
    1005令牌认证失败
    1024图片参数无效
    1054这件艺术品是高分辨率的
    1056style_id不存在
    1062签名已过期
    1063该作业不属于当前用户
    1088风格化必须介于 0 到 1000 之间
    1090工作还没准备好
    修改于 2024-03-13 05:47:13
    下一页
    命令脚本
    Built with