Essayez d'exploiter Facebook avec Python

Objectif

Essayez d'utiliser Facebook en utilisant Python

** Page de démonstration ** https://needtec.sakura.ne.jp/check_facebook/

Github https://github.com/mima3/check_facebook

Bibliothèque utilisée

facebook-sdk facebook-sdk est une API qui exploite l'API Facebook Graph en Python.

https://github.com/pythonforfacebook/facebook-sdk

easy_install facebook-sdk

bottle Framework Web Python. Facile à installer car il ne contient qu'un seul fichier.

http://bottlepy.org/docs/dev/index.html

beaker Bibliothèque pour la gestion de session en Python

https://beaker.readthedocs.org/en/latest/#

easy_install Beaker

Comment utiliser Facebook

Comment enregistrer l'application

  1. Inscrivez-vous en tant que développeur Facebook.

** Procédure d'inscription des développeurs ** http://fb.dev-plus.jp/what-devplus/dev_register/

  1. Exécutez [Applications] -> [Ajouter une nouvelle application] sur la page du développeur. https://developers.facebook.com/

facebook1.png

  1. Sélectionnez Site Web comme type d'application facebook2.png

  2. Entrez le nom de l'application et sélectionnez Créer un nouvel ID d'application Facebook

facebook3.png

  1. Sélectionnez une catégorie et entrez le Create APP ID. facebook4.png

  2. Si vous faites défiler la page créée, vous pouvez entrer l '"URL du site", alors entrez-la et cliquez sur "Suivant".

facebook5.png

facebook6.png

La redirect_url spécifiée dans l'API Facebook doit être le nom de domaine spécifié dans ce Sai. Il semble que vous ne puissiez pas spécifier l'adresse IP, donc si vous souhaitez l'exécuter localement, définissez-la sur localhost.

  1. Après avoir rechargé la page, vous pourrez sélectionner l'application créée dans le menu. facebook8.png

  2. Lorsque vous sélectionnez une application, vous pouvez voir «App ID» et «App Secret». Vous pouvez utiliser cette valeur pour vous authentifier et obtenir un jeton d'accès.

facebook9.png

Obtenez un jeton d'accès

La méthode d'acquisition du jeton d'accès est indiquée ci-dessous.

  1. Connectez-vous à oauth pour obtenir le code

** point final: ** https://www.facebook.com/dialog/oauth

** Paramètres: ** client_id: AppID de l'application Facebook redirect_url: l'URL de redirection après authentification. Une erreur se produira si le domaine n'est pas défini. scope: spécifiez les autorisations séparées par ",". https://developers.facebook.com/docs/facebook-login/permissions/v2.2?locale=ja_JP

** Exemple: ** https://www.facebook.com/dialog/oauth?client_id=XXXXX&redirect_uri=http%3A%2F%2Flocalhost%2Fcheck_facebook&scope=read_stream

Rediriger l'URL quand OK

https://localhost/check_facebook/index.cgi/?code=XXXXX#_=_

Rediriger l'URL en cas d'annulation

https://localhost/check_facebook/?error=access_denied&error_code=200&error_description=Permissions+error&error_reason=user_denied#_=_
  1. Connectez-vous à access_token et obtenez access_token

** point final: ** https://graph.facebook.com/oauth/access_token

** Paramètres: ** client_id: AppID de l'application Facebook client_secret: secret de l'application facebook redirect_url: l'URL de redirection après authentification. Une erreur se produira si le domaine n'est pas défini. code: Code obtenu par oauth

** Exemple: ** https://graph.facebook.com/oauth/access_token?client_id=facebookアプリのAppID&client_secret=facebookアプリのSecret&redirect_uri=http%3A%2F%2Flocalhost%2Fcheck_facebook&code=oauthで取得したCode

En cas d'erreur:

{
   "error": {
      "message": "Error validating application. Invalid application ID.",
      "type": "OAuthException",
      "code": 101
   }
}

Si vous pouvez obtenir access_token:

access_token=XXX&expires=5183979

Accédez à l'API Graph à l'aide du access_token obtenu ici

Comment utiliser une session avec Bottle + Bearker en Python

Voici un échantillon lorsque la bouteille est utilisée avec CGI.

index.cgi


from bottle import run
from application import app
from beaker.middleware import SessionMiddleware

session_opts = {
    'session.type': 'file',
    'session.data_dir': './session',
    'session.cookie_expires': True,
    'session.auto': True
}
appSession = SessionMiddleware(app, session_opts)
run(appSession, server='cgi')

application.py


from bottle import get, post, template, Bottle, response, request, redirect
import os

app = Bottle()

@app.get('/')
def index():
    session = request.environ.get('beaker.session')
    session['counter'] = session.get('counter', 0) + 1
    session.save()
    return template('<b>Hello {{name}}</b>!', name=session['counter'])

Le fichier session.data_dir est mis à jour à chaque fois que la page est accédée. Beaker ne supprime pas le fichier créé, supprimez-le donc régulièrement avec cron, etc.

find /hoge/session -type f -mmin +60 -exec rm {} \;

Exemple d'opération utilisant facebook-sdk

# -*- coding: utf-8 -*-
import facebook
graph = facebook.GraphAPI('API obtenue')
profile = graph.get_object('ID ou nom de la page Facebook')
print profile
posts = graph.get_connections(profile['id'], 'posts')
print posts

Résumé

En utilisant facebook-sdk, bottle et Bearker, vous pouvez créer des applications à l'aide de l'API facebook même en Python.

Recommended Posts

Essayez d'exploiter Facebook avec Python
Essayez le fonctionnement de la base de données avec Python et visualisez avec d3
Essayez de reproduire un film couleur avec Python
Essayez de vous connecter à qiita avec Python
Essayez d'utiliser Excel en utilisant Python (Xlwings)
Essayez de gratter avec Python.
Utiliser Kinesis avec Python
Faire fonctionner Blender avec Python
Utiliser Excel avec Python (1)
Utiliser Excel avec Python (2)
Essayez de résoudre le diagramme homme-machine avec Python
Essayez de dessiner une courbe de vie avec python
Essayez de créer un code de "décryptage" en Python
Essayez de générer automatiquement des documents Python avec Sphinx
Essayez de créer un groupe de dièdre avec Python
Essayez de détecter les poissons avec python + OpenCV2.4 (inachevé)
Essayez de défier le sol par récursif
Connectez-vous à BigQuery avec Python
Exploitez TwitterBot avec Lambda, Python
Essayez de comprendre Python soi
Essayez la sortie Python avec Haxe 3.2
Connectez-vous à Wikipedia avec Python
Publiez sur Slack avec Python 3
[Note] Faites fonctionner MongoDB avec Python
Essayez d'exécuter Python avec Try Jupyter
Basculer python vers 2.7 avec des alternatives
Écrire en csv avec Python
[Python] [SQLite3] Exploiter SQLite avec Python (basique)
Essayez la reconnaissance faciale avec Python
Essayez de résoudre le livre des défis de programmation avec python3
Faisons un outil de veille de commande avec python
Essayez de résoudre le problème d'affectation du médecin de formation avec Python
Comment faire fonctionner l'API Discord avec Python (enregistrement de bot)
[Automatisation] Utilisez GitLab avec Python pour faciliter la gestion des requêtes
Essayez de gratter avec Python + Beautiful Soup
Python: comment utiliser async avec
Faites fonctionner l'imprimante de reçus avec python
Lien pour commencer avec python
Essayez d'afficher diverses informations utiles pour le débogage avec python
[Python] Ecrire dans un fichier csv avec Python
Ravi de vous rencontrer avec python
Essayez d'exploiter un fichier Excel en utilisant Python (Pandas / XlsxWriter) ①
Publication de Python sur la chronologie Facebook
[AWS] Essayez d'ajouter la bibliothèque Python à la couche avec SAM + Lambda (Python)
Essayez la décomposition de valeurs singulières avec Python
Sortie vers un fichier csv avec Python
Essayez d'exploiter un fichier Excel en utilisant Python (Pandas / XlsxWriter) ②
Essayez Python
Essayez de profiler avec ONNX Runtime
Convertir la liste en DataFrame avec python
Conversion MP3 → WAV avec Python
Pour faire une récursion avec Python2
Essayez de calculer Trace en Python
Comment démarrer avec Python
Essayez d'ouvrir une sous-fenêtre avec PyQt5 et Python
Essayez de convertir la CLI cloudmonkey en python3 -1
Que faire avec la sortie de PYTHON?
Faites fonctionner les appareils électroménagers ECHONET Lite avec Python