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
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
** Procédure d'inscription des développeurs ** http://fb.dev-plus.jp/what-devplus/dev_register/
Sélectionnez Site Web comme type d'application
Entrez le nom de l'application et sélectionnez Créer un nouvel ID d'application Facebook
Sélectionnez une catégorie et entrez le Create APP ID.
Si vous faites défiler la page créée, vous pouvez entrer l '"URL du site", alors entrez-la et cliquez sur "Suivant".
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.
Après avoir rechargé la page, vous pourrez sélectionner l'application créée dans le menu.
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.
La méthode d'acquisition du jeton d'accès est indiquée ci-dessous.
** 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#_=_
** 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
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 {} \;
# -*- 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
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