Instagram API à l'aide de Python
Je suis actuellement en utilisant Instagram de l'API dans le mode bac à sable à l'aide de Python python-instagram
de la bibliothèque. Maintenant, j'ai une application et de son numéro de client, client secret et le jeton d'accès, et un est connecté sandbox de l'utilisateur.
Plus tôt aujourd'hui, j'ai essayé avec le users/search
point de terminaison. Tout d'abord, j'ai directement utilisé leur URL de point de terminaison pour envoyer une demande:
https://api.instagram.com/v1/users/search?q=XXXX&access_token=<my_access_token>
où XXXX
est connecté, le sandbox de l'utilisateur de mon Instagram application. C'est la réponse générée:
{"meta":{"code":200},"data":[{"username":"XXXX","bio":"Twitter: @XXXX","website":"","profile_picture":"https:a.jpg","full_name":"XXXX XXXX","id":"22222222"}]}
Maintenant, j'ai essayé d'utiliser le python-instagram
bibliothèque d'envoyer une requête pour le même effet comme suit:
from instagram.client import InstagramAPI
access_token = <my_access_token>
api = InstagramAPI(client_secret='aaaa', access_token = access_token[0])
usr = api.user_search('XXXX')
print usr
Cependant, c'est la réponse que je reçois dans ce cas:
[User: XXXX]
Pourquoi est-ce que je reçois des réponses différentes, quand j'essaie d'appeler le même point de terminaison à l'aide de l'URL directe et de la bibliothèque Python?
Vous devez vous connecter pour publier un commentaire.
Ce
python-instagram
est en train de faire, c'est qu'il va prendre le raw réponse JSON que vous obtenez lorsque vous émettez une requête HTTP, et de l'associer à des objets python.Lorsque vous émettez un
print usr
, vous êtes l'impression d'unUser
objet dans une liste, de sorte que vous pouvez voir une chaîne qui est[User: XXXX]
.Vous pouvez trouver le modèle qu'ils utilisent pour l'Utilisateur de l'objet ici. Il agit directement sur les cartes les champs à partir du Json pour obtenir les attributs.
Essayez le code suivant pour récupérer un nom d'utilisateur et id:
my_usr.
et appuie sur la touche tab pour savoir tout de suite ce que les champs sont. Vous pouvez également utiliserdict(my_usr)
mais il n'est pas aussi jolie.