Versuchen Sie, Facebook mit Python zu betreiben

Zweck

Versuchen Sie, Facebook mit Python zu betreiben

** Demoseite ** https://needtec.sakura.ne.jp/check_facebook/

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

Bibliothek verwendet

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

So bedienen Sie Facebook

So registrieren Sie die Anwendung

  1. Registrieren Sie sich als Facebook-Entwickler.

** Registrierungsverfahren für Entwickler ** http://fb.dev-plus.jp/what-devplus/dev_register/

  1. Führen Sie auf der Entwicklerseite [Apps] -> [Neue App hinzufügen] aus. https://developers.facebook.com/

facebook1.png

  1. Wählen Sie als Anwendungstyp Website aus facebook2.png

  2. Geben Sie den Anwendungsnamen ein und wählen Sie Neue Facebook-APP-ID erstellen

facebook3.png

  1. Wählen Sie eine Kategorie aus und geben Sie die APP-ID erstellen ein. facebook4.png

  2. 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".

facebook5.png

facebook6.png

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.

  1. Nach dem erneuten Laden der Seite können Sie die erstellte Anwendung aus dem Menü auswählen. facebook8.png

  2. 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.

facebook9.png

Zugriffstoken erhalten

Die Methode zum Abrufen des Zugriffstokens ist unten dargestellt.

  1. Stellen Sie eine Verbindung zu oauth her, um den Code zu erhalten

** 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#_=_
  1. Stellen Sie eine Verbindung zu access_token her und rufen Sie access_token ab

** 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

So verwenden Sie eine Sitzung mit Bottle + Bearker in Python

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 {} \;

Betriebsbeispiel mit facebook-sdk

# -*- 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

Zusammenfassung

Mit Facebook-SDK, Bottle und Bearker können Sie Anwendungen mit der Facebook-API auch in Python erstellen.

Recommended Posts

Versuchen Sie, Facebook mit Python zu betreiben
Probieren Sie die DB-Operation mit Python aus und visualisieren Sie sie mit d3
Versuchen Sie, Farbfilme mit Python zu reproduzieren
Versuchen Sie, sich mit Python bei qiita anzumelden
Versuchen Sie, Excel mit Python (Xlwings) zu betreiben.
Versuchen Sie es mit Python.
Kinesis mit Python betreiben
Betreiben Sie Blender mit Python
Betreiben Sie Excel mit Python (1)
Betreiben Sie Excel mit Python (2)
Versuchen Sie, das Mensch-Maschine-Diagramm mit Python zu lösen
Versuchen Sie, mit Python eine Lebenskurve zu zeichnen
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
Versuchen Sie, Python-Dokumente automatisch mit Sphinx zu generieren
Versuchen Sie, mit Python eine Diedergruppe zu bilden
Versuchen Sie, Fische mit Python + OpenCV2.4 (unvollendet) zu erkennen.
Versuchen Sie, den Boden durch Rekursion herauszufordern
Stellen Sie mit Python eine Verbindung zu BigQuery her
Betreiben Sie TwitterBot mit Lambda, Python
Versuchen Sie, Python selbst zu verstehen
Probieren Sie die Python-Ausgabe mit Haxe 3.2 aus
Stellen Sie mit Python eine Verbindung zu Wikipedia her
Post to Slack mit Python 3
[Hinweis] Betreiben Sie MongoDB mit Python
Versuchen Sie, Python mit Try Jupyter auszuführen
Schalten Sie Python mit Alternativen auf 2.7 um
Schreiben Sie mit Python in csv
[Python] [SQLite3] Betreiben Sie SQLite mit Python (Basic)
Versuchen Sie die Gesichtserkennung mit Python
Versuchen Sie, das Programmier-Herausforderungsbuch mit Python3 zu lösen
Lassen Sie uns ein Befehls-Standby-Tool mit Python erstellen
Versuchen Sie, das Problem der Zuweisung von Schulungsärzten mit Python zu lösen
So bedienen Sie die Discord API mit Python (Bot-Registrierung)
[Automatisierung] Betreiben Sie GitLab mit Python, um die Verwaltung von Anfragen zu vereinfachen
Versuchen Sie es mit Python + Beautiful Soup
Python: So verwenden Sie Async mit
Bedienen Sie den Belegdrucker mit Python
Link, um mit Python zu beginnen
Versuchen Sie, verschiedene Informationen anzuzeigen, die für das Debuggen mit Python nützlich sind
[Python] Mit Python in eine CSV-Datei schreiben
Schön dich mit Python zu treffen
Versuchen Sie, eine Excel-Datei mit Python (Pandas / XlsxWriter) zu betreiben
Post von Python auf Facebook Timeline
[AWS] Versuchen Sie, die Python-Bibliothek mit SAM + Lambda (Python) zur Ebene hinzuzufügen.
Versuchen Sie die Singularwertzerlegung mit Python
Ausgabe in eine CSV-Datei mit Python
Versuchen Sie, eine Excel-Datei mit Python (Pandas / XlsxWriter) zu betreiben
Versuchen Sie Python
Versuchen Sie, sich mit ONNX Runtime zu profilieren
Konvertieren Sie die Liste mit Python in DataFrame
MP3 → WAV-Konvertierung mit Python
Schwanzrekursion mit Python2 durchführen
Versuchen Sie, Trace in Python zu berechnen
Erste Schritte mit Python
Versuchen Sie, ein Unterfenster mit PyQt5 und Python zu öffnen
Versuchen Sie, die cloudmonkey-CLI in python3 -1 zu konvertieren
Was tun mit PYTHON Release?
Betreiben Sie ECHONET Lite-Haushaltsgeräte mit Python