Obtenez un jeton pour conoha avec python

Nécessaire pour faire diverses choses en utilisant l '[API] officielle (https://www.conoha.jp/docs/)

Une petite explication

code

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

Obtenez un jeton pour conoha avec python
Comment obtenir stacktrace en python
Obtenir la date en Python
Obtenez un billet pour un parc à thème avec python
Récupérer l'appelant d'une fonction en Python
Touchons une partie de l'apprentissage automatique avec Python
Obtenez des commentaires YouTube en Python
Prendre une capture d'écran en Python
Créer une fonction en Python
Créer un dictionnaire en Python
Obtenez le mois dernier en Python
Essayez de rechercher un profil d'un million de caractères en Python
Techniques de tri en Python
Obtenir la taille du terminal en Python
Créer un bookmarklet en Python
BigQuery - Si vous obtenez une erreur Reason: responseTooLarge en Python
Obtenir explicitement EOF en python
Python: obtenir une liste de méthodes pour un objet
Dessinez un cœur en Python
Obtenez des notes Evernote en Python
À propos de "for _ in range ():" de python
Définir le proxy pour Python pip (décrit dans pip.ini)
Obtenez des synonymes japonais avec Python
Créer un compte enfant de connect with Stripe en Python
Obtenez le nombre d'éléments spécifiques dans la liste python
Création d'un environnement de développement pour les applications Android - Création d'applications Android avec Python
Développer une bibliothèque pour obtenir la liste des collections Kindle en Python
Comment définir plusieurs variables dans une instruction Python for
J'ai essayé "Comment obtenir une méthode décorée en Python"
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Obtenez des données LeapMotion en Python.
Rechercher les fuites de mémoire dans Python
J'obtiens un UnicodeDecodeError avec mecab-python3
Probablement dans un serpent Nishiki (Titre original: Peut-être en Python)
Ecrire une dichotomie en Python
[python] Gérer les fonctions dans une liste
Rechercher des commandes externes avec python
Appuyez sur une commande en Python (Windows)
J'obtiens une KeyError dans pyclustering.xmeans
Obtenez le chemin du bureau en Python
Dessinez une matrice de diagramme de dispersion avec python
ABC166 en Python A ~ C problème
Ecrire des algorithmes A * (A-star) en Python
Obtenez le chemin du script en Python
Créer un fichier binaire en Python
Résoudre ABC036 A ~ C avec Python
Ecrire le plugin vim en Python
Écrire une recherche de priorité en profondeur en Python
Implémentation d'un algorithme simple en Python 2
Obtenez le chemin du bureau en Python
Exécutez unittest en Python (pour les débutants)
Obtenez le nom d'hôte en Python
Résoudre ABC037 A ~ C avec Python
Exécutez un algorithme simple en Python
Dessinez un diagramme CNN en Python
Créer une chaîne aléatoire en Python
Démarrez avec Python avec Blender
Lors de l'écriture d'un programme en Python