# -*- coding: utf-8 -*-
import hashlib
import time
import random
import string
import requests
import base64
import requests
import cv2
import numpy as np
from urllib.parse import urlencode
import json #用于post后得到的字符串到字典的轉(zhuǎn)換
app_id = '1106891759'
app_key = 'z1BoKczrUMtsWyMC'
'''
騰訊openai鑒權(quán)簽名計算步驟:(摘抄自官網(wǎng))
用于計算簽名的參數(shù)在不同接口之間會有差異,但算法過程固定如下4個步驟。
1 將<key, value>請求參數(shù)對按key進行字典升序排序,得到有序的參數(shù)對列表N
2 將列表N中的參數(shù)對按URL鍵值對的格式拼接成字符串,得到字符串T(如:key1=value1&key2=value2),URL鍵值拼接過程value部分需要URL編碼,URL編碼算法用大寫字母,例如%E8,而不是小寫%e8
3 將應(yīng)用密鑰以app_key為鍵名,組成URL鍵值拼接到字符串T末尾,得到字符串S(如:key1=value1&key2=value2&app_key=密鑰)
4 對字符串S進行MD5運算,將得到的MD5值所有字符轉(zhuǎn)換成大寫,得到接口請求簽名
'''
def get_params(img): #鑒權(quán)計算并返回請求參數(shù)
#請求時間戳(秒級),用于防止請求重放(保證簽名5分鐘有效
time_stamp=str(int(time.time()))
#請求隨機字符串,用于保證簽名不可預(yù)測,16代表16位
nonce_str = ''.join(random.sample(string.ascii_letters + string.digits, 16))
params = {'app_id':app_id, #請求包,需要根據(jù)不同的任務(wù)修改,基本相同
'image':img, #文字類的任務(wù)可能是‘text’,由主函數(shù)傳遞進來
'mode':'0' , #身份證件類可能是'card_type'
'time_stamp':time_stamp, #時間戳,都一樣
'nonce_str':nonce_str, #隨機字符串,都一樣
#'sign':'' #簽名不參與鑒權(quán)計算,只是列出來示意
}
sort_dict= sorted(params.items(), key=lambda item:item[0], reverse = False) #字典排序
sort_dict.append(('app_key',app_key)) #尾部添加appkey
rawtext= urlencode(sort_dict).encode() #urlencod編碼
sha = hashlib.md5()
sha.update(rawtext)
md5text= sha.hexdigest().upper() #MD5加密計算
params['sign']=md5text #將簽名賦值到sign
return params #返回請求包
def main():
'''
#用python系統(tǒng)讀取方法
f = open('c:/girl.jpg','rb')
img = base64.b64encode(f.read()) #得到API可以識別的字符串
'''
#用opencv讀入圖片
frame=cv2.imread('/Users/fuqi/Downloads/Douyin-Bot-master/autojump.png')
nparry_encode = cv2.imencode('.jpg', frame)[1]
data_encode = np.array(nparry_encode)
img = base64.b64encode(data_encode) #得到API可以識別的字符串
params = get_params(img) #獲取鑒權(quán)簽名并獲取請求參數(shù)
url = "https://api.ai.qq.com/fcgi-bin/face/face_detectface" # 人臉分析
res = requests.post(url,params).json()
print(res['data']['face_list'][0]['beauty'])
if __name__ == '__main__':
main()
2018-06-13 python使用騰訊的人臉分析api
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。