html调用app store,调用App Store Connect Api

#-*- coding:utf-8 -*-#Author: drew#create time: 2020-07030#update time:#app store connect api

importjwtimporttimeimportjsonimportrequestsfrom datetime importdatetime, timedelta

algorithm= 'ES256'base_api_url= "https://api.appstoreconnect.apple.com"

defget_token(key, iss, key_file):""":param key:

:param iss:

:param key_file:

:return:"""

#读取私钥

private_key = open(key_file, 'r').read()#构造header

header ={"alg": algorithm,"kid": key,"typ": "JWT"}#构造payload

payload ={"iss": iss,"exp": int(time.mktime((datetime.now() + timedelta(minutes=20)).timetuple())),"aud": "appstoreconnect-v1"}

token= jwt.encode(payload=payload, key=private_key, algorithm=algorithm, headers=header).decode('ascii')returntokendef base_call(url, token, method="get", data=None):""":param url:

:param token:

:param method:

:param data:

:return:"""re_header= {"Authorization": "Bearer %s" %token}

r={}

url= base_api_url +url

requests.adapters.DEFAULT_RETRIES= 1req=requests.session()

req.keep_alive=Falseif method.lower() == "get":

r= req.get(url, params=data, headers=re_header)elif method.lower() == "post":

re_header["Content-Type"] = "application/json"r= req.post(url=url, headers=re_header, data=json.dumps(data))elif method.lower() == "patch":

re_header["Content-Type"] = "application/json"r= req.patch(url=url, headers=re_header, data=json.dumps(data))returnr#------------------ 获取具体接口的方法 ------------------

def get_devices(api_token, data=None):"""获取devices信息

:param api_token:

:param data:

:return:"""get_devices_url= '/v1/devices'

if data isNone:

data={"filter[platform]": "IOS",#"filter[status]": "ENABLED",

"limit": 100}

res= base_call(get_devices_url, api_token, 'get', data)returnresdefset_devices(api_token, data):"""增加devices信息

:param api_token:

:param data:

:return:"""set_device_url= '/v1/devices'res= base_call(set_device_url, api_token, 'post', data)returnresdefupdate_devices(api_token, id, data,):"""增加devices信息

:param id:

:param api_token:

:param data:

:return:"""set_device_url= '/v1/devices/{%s}' %id

res= base_call(set_device_url, api_token, 'patch', data)returnres"""if __name__ == "__main__":

ios_api_key = 'T8****8AD8'

ios_api_issuer = '69a**9-b79b-4**3-e053-5b**1a4d1'

file_key = "/Users/drew/.private_keys/AuthKey_T85LR***8.p8"

token_api = get_token(ios_api_key, ios_api_issuer, file_key)

# get_udid()

post_data = {

"data": {

"attributes": {

"name": "zb",

"platform": "IOS",

"udid": "80b677c2c****e476caf61ba0d34274000"

},

"type": "devices"

}

}

res = set_udid(token_api, post_data)

print(res)"""

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值