Effectuez facilement une authentification OAuth sur Flickr à l'aide de requêtes et de requêtes_oauthlib Dans "Frapper l'API Web à l'aide de requêtes: Flickr", j'ai frappé l'API Web de Flickr, mais en réalité c'était une photo privée dans mon compte. Je veux souvent y accéder. Voici donc comment rendre votre compte accessible à l'aide de l'authentification OAuth.
install Puisqu'il est enregistré dans PyPi, installez-le en utilisant pip ou easy_install.
$ pip install requests requests_oauthlib
Si vous n'avez pas de compte Flickr, obtenez-en un si nécessaire.
Accédez à l'adresse ci-dessous, enregistrez l'application et obtenez la clé API et SECRET. Pour un usage non commercial, inscrivez-vous auprès de Non-Commercial. https://www.flickr.com/services/apps/create/apply/
La procédure Flickr OAuth est expliquée sur le site officiel. Cette fois, nous ciblons Flickr, mais la procédure devrait être la même pour OAuth1. Flickr:User Authentication
import urlparse
import webbrowser
import requests
from requests_oauthlib import OAuth1
API_KEY = 'YOUR_API_KEY'
SECRET_KEY = 'YOUR_SECRET_KEY'
request_url = 'https://www.flickr.com/services/oauth/request_token'
authorize_url = 'https://www.flickr.com/services/oauth/authorize'
access_token_url = 'https://www.flickr.com/services/oauth/access_token'
access_url = 'https://api.flickr.com/services/rest/'
callback_uri = 'oob'
def oauth_requests():
# Get request token
auth = OAuth1(API_KEY, SECRET_KEY, callback_uri=callback_uri)
r = requests.post(request_url, auth=auth)
request_token = dict(urlparse.parse_qsl(r.text))
# Getting the User Authorization
webbrowser.open('%s?oauth_token=%s&perms=delete' % (authorize_url, request_token['oauth_token'])) #Ouvrez le navigateur et affichez l'écran de confirmation d'authentification OAuth. Si l'utilisateur le permet, le code PIN s'affichera.
oauth_verifier = raw_input("Please input PIN code:") #Entrez le code PIN ci-dessus
auth = OAuth1(
API_KEY,
SECRET_KEY,
request_token['oauth_token'],
request_token['oauth_token_secret'],
verifier=oauth_verifier)
r = requests.post(access_token_url, auth=auth)
access_token = dict(urlparse.parse_qsl(r.text))
return access_token
if __name__ == '__main__':
print oauth_requests()
Cela vous donnera un jeton d'accès et un secret de jeton d'accès, que vous devriez pouvoir utiliser pour accéder à votre compte.
A une autre occasion concernant les spécifications de l'API après authentification ...