Nécessaire pour faire diverses choses en utilisant l '[API] officielle (https://www.conoha.jp/docs/)
get_token.py
#!/usr/bin/env python
import requests
import json
import datetime
import os
class get_token:
        def __init__(self): #Initialisation
                self.values = {"auth":{"passwordCredentials":{"username":"","password":""},"tenantId":""}}
 
        def set(self,user,passwd,tnid): #Obtention du nom d'utilisateur, du mot de passe, de l'ID du locataire
                self.user = user
                self.passwd = passwd
                self.tnid = tnid
 
        def getter(self): #Processus d'acquisition de jetons
                get_flag = True #Initialisation des drapeaux
                if os.path.exists("./my_token_expire.txt"): #Si vous avez déjà un token, vérifiez la date d'expiration dans le fichier
                        with open('my_token_expire.txt','r') as f:
                                tk_ex = f.read()
                                tk_ex = tk_ex.replace("T"," ")
                                tk_ex = tk_ex.replace("Z","")
                                tk_ex_time =  datetime.datetime.strptime(tk_ex, '%Y-%m-%d %H:%M:%S')
                                today =  datetime.datetime.utcnow()
                                if today < tk_ex_time: #Si la date limite est valide, n'obtenez pas
                                        get_flag = False
                                        print 'active token'
                                else:
                                        print 'expired token'
                else:
                        print 'token file not found'
                if get_flag: #Obtenir un jeton si l'indicateur est défini
                        url = 'https://identity.tyo1.conoha.io/v2.0/tokens'
                        self.values["auth"]["passwordCredentials"]["username"]=self.user
                        self.values["auth"]["passwordCredentials"]["password"]=self.passwd
                        self.values["auth"]["tenantId"]=self.tnid
                        head = {'Accept':'application/json'}
                        r = requests.post(url,data=json.dumps(self.values),headers=head)
                        with open('my_token.json','w') as f:
                                f.write(r.text)
                                f.flush()
                        with open('my_token.json','r') as f:
                                jsonData = json.loads(f.read())
                        with open('my_token.txt','w') as f:
                                f.write(jsonData["access"]["token"]["id"])
                                f.flush()
                                print 'write token'
                        with open('my_token_expire.txt','w') as f:
                                f.write(jsonData["access"]["token"]["expires"])
                                f.flush()
                                print 'expires='+jsonData["access"]["token"]["expires"]
def token_get_main(user,passwd,tenantId):
        token_get = get_token()
        token_get.set(user,passwd,tenantId)
        token_get.getter()
if __name__ == '__main__':
        user = 'Nom d'utilisateur'
        ps = 'Mot de passe de l'utilisateur'
        tenantId = 'ID du locataire'
        token_get_main(user,ps,tenantId)
Les données au format JSON acquises sont enregistrées dans   my_token.json```, les jetons sont enregistrés dans my_token.txt` '' et les dates d'expiration des jetons sont enregistrées dans  my_token_expire.txt ..
Recommended Posts