Versuchen Sie, Facebook mit Python zu betreiben
** Demoseite ** https://needtec.sakura.ne.jp/check_facebook/
Github https://github.com/mima3/check_facebook
facebook-sdk facebook-sdk ist eine API, die die Facebook Graph API in Python betreibt.
https://github.com/pythonforfacebook/facebook-sdk
easy_install facebook-sdk
bottle Python-Webframework. Einfach zu installieren, da es nur aus einer Datei besteht.
http://bottlepy.org/docs/dev/index.html
beaker Bibliothek für die Sitzungsverwaltung in Python
https://beaker.readthedocs.org/en/latest/#
easy_install Beaker
** Registrierungsverfahren für Entwickler ** http://fb.dev-plus.jp/what-devplus/dev_register/
Wählen Sie als Anwendungstyp Website aus
Geben Sie den Anwendungsnamen ein und wählen Sie Neue Facebook-APP-ID erstellen
Wählen Sie eine Kategorie aus und geben Sie die APP-ID erstellen ein.
Wenn Sie auf der erstellten Seite nach unten scrollen, können Sie die "Site-URL" eingeben. Geben Sie sie ein und klicken Sie auf "Weiter".
Die in der Facebook-API angegebene redirect_url muss der in diesem Sai angegebene Domainname sein. Es scheint, dass Sie die IP-Adresse nicht angeben können. Wenn Sie sie also lokal ausführen möchten, setzen Sie sie auf localhost.
Nach dem erneuten Laden der Seite können Sie die erstellte Anwendung aus dem Menü auswählen.
Wenn Sie eine App auswählen, sehen Sie die "App ID" und "App Secret". Mit diesem Wert können Sie sich authentifizieren und ein Zugriffstoken erhalten.
Die Methode zum Abrufen des Zugriffstokens ist unten dargestellt.
** Endpunkt: ** https://www.facebook.com/dialog/oauth
** Parameter: ** client_id: AppID der Facebook-App redirect_url: Die Weiterleitungs-URL nach der Authentifizierung. Ein Fehler tritt auf, wenn die Domäne nicht festgelegt ist. Gültigkeitsbereich: Geben Sie die durch "," getrennten Berechtigungen an. https://developers.facebook.com/docs/facebook-login/permissions/v2.2?locale=ja_JP
** Beispiel: ** https://www.facebook.com/dialog/oauth?client_id=XXXXX&redirect_uri=http%3A%2F%2Flocalhost%2Fcheck_facebook&scope=read_stream
URL umleiten, wenn OK
https://localhost/check_facebook/index.cgi/?code=XXXXX#_=_
URL im Falle einer Stornierung umleiten
https://localhost/check_facebook/?error=access_denied&error_code=200&error_description=Permissions+error&error_reason=user_denied#_=_
** Endpunkt: ** https://graph.facebook.com/oauth/access_token
** Parameter: ** client_id: AppID der Facebook-App client_secret: Geheimnis der Facebook App redirect_url: Die Weiterleitungs-URL nach der Authentifizierung. Ein Fehler tritt auf, wenn die Domäne nicht festgelegt ist. Code: Code von oauth erhalten
** Beispiel: ** 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
Im Fehlerfall:
{
"error": {
"message": "Error validating application. Invalid application ID.",
"type": "OAuthException",
"code": 101
}
}
Wenn Sie access_token erhalten können:
access_token=XXX&expires=5183979
Greifen Sie mit dem hier erhaltenen access_token auf die Graph-API zu
Unten sehen Sie ein Beispiel, wenn die Flasche mit CGI betrieben wird.
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'])
Die Datei session.data_dir wird bei jedem Zugriff auf die Seite aktualisiert. Beaker löscht die erstellte Datei nicht, löschen Sie sie daher regelmäßig mit cron usw.
find /hoge/session -type f -mmin +60 -exec rm {} \;
# -*- coding: utf-8 -*-
import facebook
graph = facebook.GraphAPI('Erhaltene API')
profile = graph.get_object('Facebook-Seiten-ID oder Name')
print profile
posts = graph.get_connections(profile['id'], 'posts')
print posts
Mit Facebook-SDK, Bottle und Bearker können Sie Anwendungen mit der Facebook-API auch in Python erstellen.
Recommended Posts