図霊ロボットAPIインターフェース

16456 ワード

図霊APIインターフェースを起動して、人機のインタラクションを実現します.
フロー1:登録
図霊ロボット公式サイト: http://www.tuling123.com/
第一歩:まず登録して、ロボットを作って、32桁のキーをもらいます.
コーディング
UTF-8(図霊APIを呼び出す各環節の符号化方式はすべてUTF-8である)
インターフェースアドレス
http://openapi.tuling123.com/openapi/api/v2
要求方式
HTTP POST
要求パラメータ
要求パラメータのフォーマットはJsonです.

{
    "reqType":0,
    "perception": {
        "inputText": {
            "text": "     "
        },
        "inputImage": {
            "url": "imageUrl"
        },
        "selfInfo": {
            "location": {
                "city": "  ",
                "province": "  ",
                "street": "   "
            }
        }
    },
    "userInfo": {
        "apiKey": "",
        "userId": ""
    }
}
要求例
出力パラメータ

{
    "intent": {
        "code": 10005,
        "intentName": "",
        "actionName": "",
        "parameters": {
            "nearby_place": "  "
        }
    },
    "results": [
        {
             "groupType": 1,
            "resultType": "url",
            "values": {
                "url": "http://m.elong.com/hotel/0101/nlist/#indate=2016-12-10&outdate=2016-12-11&keywords=%E4%BF%A1%E6%81%AF%E8%B7%AF"
            }
        },
        {
             "groupType": 1,
            "resultType": "text",
            "values": {
                "text": ""
            }
        }
    ]
}
出力例
異常リターンコード

{
    'intent':
        {
            'code':5000
        }
}
異常戻りフォーマット
 
コードの例
import json
import urllib.request
while 1:
    try:
        api_url = "http://openapi.tuling123.com/openapi/api/v2"
        text_input = input('')
        if text_input == 'exit':
            break
        req = {
            "reqType": 0,  #      0-  , 1-  , 2-  
            "perception":  #     
            {
                "inputText":  #     
                {
                    "text": text_input
                },

                "selfInfo":  #     
                {
                    "location":
                    {
                        "city": "  ",  #     
                        "province": "  ",  #   
                        "street": "    "  #   
                    }
                }
            },
            "userInfo":
            {
                "apiKey": "347b39ee228b4b109dae7270cc08d3c8",  #        key
                "userId": "0001"  #       (   ,    )
            }
        }
        # print(req)
        #       req   utf8
        req = json.dumps(req).encode('utf8')
        # print(req)
        http_post = urllib.request.Request(api_url, data=req, headers={
     'content-type': 'application/json'})
        response = urllib.request.urlopen(http_post)
        response_str = response.read().decode('utf8')
        # print(response_str)
        response_dic = json.loads(response_str)
        # print(response_dic)
        intent_code = response_dic['intent']['code']
        results_text = response_dic['results'][0]['values']['text']
        print('   1 :', results_text)
        # print('code:' + str(intent_code))
    except KeyError:
        print('   ~~,           ')
 
注:4001に戻ると、appeyの下の鍵を取って正常に動作します.
 
転載先:https://www.cnblogs.com/peng104/p/10200415.html