Um schnell und unkompliziert Access-Tokens für Facebook und Google zu generieren habe ich vor einiger Zeit in Rahmen eines Projektes ein kleines Tool Names „Access Token Generator“ (bis 2016 hieß dieses Tool „Access Token Manager“) mit einem einfachen GUI geschrieben, mit dem sich dies ganz komfortabel bewerkstelligen lässt – Screenshot:
Facebook- und Google-API Programmierer können damit sehr schnell für die unterschiedlichsten Apps und Dienste Access- Tokens “in Serie” generieren und sich auch komfortabel mit einem Klick die Access-Tokens für Facebook-Seiten beim Scope “manage_pages” holen (Details zu den Permissions finden Sie in der offiziellen Doku von Facebook).
Zudem muss ich nun auch nicht mehr meine Kunden bitten, dass sie mir ihr Facebook-Passwort verraten um für sie ein Access-Token zu generieren. Stattdessen können diese nun das Tool an ihrem PC zu installieren und somit das Access-Token selbst zu erzeugen und mir zukommen zu lassen.
Die aktuelle Version (1.3 vom 7.9.2013) kann hier downgeladen werden:
Download “setup.exe” Access Token Manager
Wichtige Info 12.12.2016:
In Kürze wird es ein größeres Update des Tools geben. Die aktuelle Version 1.3 funktioniert jedoch weiterhin – die Facebook App muss dafür nur richtig konfiguriert werden. Wie das geht ist in diesem Blogpost nachzulesen.
Update am 31.1.2017: Die neue Beta-Version des Tools ist fertig – Details sind hier nachzulesen:
http://frank-it-beratung.com/blog/2017/01/31/beta-version-des-oatuh-tools-access-token-generator-2/
Interessierte können den Quelltext ebenfalls einsehen und nach eigenen Wünschen verändern und weiterentwickeln (Lizenz: CC BY 3.0, also mit Namensnennung). Auf Wunsch eines Kollegens habe ich das nicht in C# sondern in Visual Basic geschrieben – was mich inzwischen auch schon ärgert, aber nun ist es zu spät. Vielleicht werde ich bei Gelegenheit mal eine C#-Version schreiben.
Quellcode (Lizenz: CC 3.0 BY): AccessTokenManager Version 1.3 frmMain.vb (und frmMain.Designer.vb) sowie alle älteren Versionen.
In diversen Blogposts habe ich die Entwicklung ein wenig dokumentiert:
Blogposts zum Access-Token-Manager
Und natürlich habe ich diverse Tutorials zur Facebook API (Graph API) und Google-API (insebsondere zu Google+) geschrieben:
Blogposts und Tutorials zur Facebook-API (Graph API)
Blogpost und Tutorials zu Google+ API
Probleme? Fragen? Anregungen? Ich helfe jederzeit und gerne – einfach einen Kommentar oder Mail schreiben, die Antwort kommt schnellstmöglich. Unternehmen, die Unterstützung, Beratung oder Schulung bei der API- oder Webprogrammierung, der Social-Media-Entwicklung oder dem Social-Media-Management benötigen finden zudem entsprechende Angebote meiner Firma auf der Website www.Frank-IT-Beratung.de
Eine neue Version des Access-Token-Generator Tools ist fast fertig, Details siehe:
http://frank-it-beratung.com/blog/2017/01/31/beta-version-des-oatuh-tools-access-token-generator-2/
Ich werde immer wieder gefragt, ob mein Access-Token-Tool für Facebook, das ich lange nicht mehr aktualisiert habe, noch funktioniert: Ja, es geht noch! Man muss nur die Facebook App entsprechend konfigurieren – wie ist hier nachzulesen:
http://frank-it-beratung.com/blog/2016/12/12/facebook-app-fuer-access-token-manager-konfigurieren/
Zudem ist eine neue Version in Planung, die Anfang 2017 erscheinen wird.
Hallo Simon, ich habe heute dein Access-Token-Managertool gedownloaded, um das erste mal mit der Facebook API zu experiemtieren. Ziel war es mit deinem VBA Code einen Kommentar in meinem Newsfeed zu posten.
Irgendwie scheitere ich aber bereits bei der Generierung des Access Tokens. Wenn ich dein geniales Tool nutze und als Scope nur ‚publish_stream`aktiviere bekomme ich folgende Fehlermeldung „Invalid Scopes: publish_stream. This message is only shown to developers. Users of your app will ignore these permissions if present. Please read the documentation for valid permissions at: https://developers.facebook.com/docs/facebook-login/permissions„.
Was mache ich falsch??
Danke für Deine Hilfe und den super Blog!!
Eric
Vielen Dank für Dein Feedback 🙂 ich muss mein Tool mal wieder aktualisieren: publish_stream gibt es nicht mehr bzw. muss man nicht mehr extra anfragen. Eine Alternative kann „publish_action“ sein:
https://developers.facebook.com/docs/facebook-login/permissions
Ich hoffe, das hilft etwas weiter! Wenn noch Fragen sind: jederzeit und gerne!
Danke Simon für Dein Feedback. Hat immer noch nicht geklappt. Bei publish_action bekomme ich jetzt die Meldung „Invalid Scopes: read_stream. This message is only shown to developers. Users of your app will ignore these permissions if present. Please read the documentation for valid permissions at: https://developers.facebook.com/docs/facebook-login/permissions“ und keinen Access Token. Kann es sein, dass ich die App falsch „aufgesetzt“ habe? Ich bin irgendwie zu doof dazu :-).
Als Basis dient dein VBA Code für Events (http://frank-it-beratung.com/blog/2012/06/30/tutorial-facebook-api-mit-ms-access-und-vba/) den ich nutzen will zu Testzwecken einen Post in meinen eigen FB feed abzusetzen. Irgendwie scheitert es aber schon am Token…
Danke für Deine Hilfe!!
Hi Simon, jetzt hat es geklappt. Weiss noch nicht ganz warum. Aber es läuft! danke dir!
Wunderbar, wenn es jetzt doch geklappt hat. Meine älteren Tutorials sind an manchen Stellen leider nicht ganz aktuell, ich werde mal bei Gelgenheit das aktualisieren!
Seit einiger Zeit wird in der Google-Developers-Console nicht mehr die Redirect-URI angezeigt. Folgendes ist da immer einzutragen:
urn:ietf:wg:oauth:2.0:oob:auto
Details dazu sind hier nachzulesen:
https://developers.google.com/identity/protocols/OAuth2InstalledApp#choosingredirecturi
Beim nächsten Updates meines Tools werde ich dies als Default-Wert im Formular einstellen.
Bei Facebook-Apps gibt es eine neue Einstellung, die bei älteren Apps nicht aktiviert ist – beim erneuten Erstellen von Tokens kann es dazu zu Fehler kommen (häufige Fehlermeldung: „Die Anwendungseinstellungen lassen die angegebene URL nicht zu.: Eine oder mehrere URLs sind in den Einstellungen der App nicht zugelassen. Sie müssen mit der Website….“)
In diesem Fall sollte man sich bei https://developers.facebook.com einloggen und bei der App unter „Setting“ –> „Advanced“ –> „Embedded browser OAuth Login“ auf „Yes“ stellen.
Die Google Developer Console hat sich etwas verändert – die Übersetzung ins Deutsche sorgt zudem für Verwirrung – hier eine Anleitung:
http://frank-it-beratung.com/blog/2014/11/24/google-developer-console-auf-deutsch-sorgt-fuer-verwirrung/
Hallo,
ich habe mir den Source Code heruntergeladen, in mein Projekt eingefügt und das Projekt gestartet.
Ich drücken den Button : „Get Google Access Token for native applications (response_type=code)“
Beim anmelden bei Google bekomme ich aber leider eine Fehlermeldung:
401. That’s an error.
Error: invalid_client
no application name
Hat sich da was an der API geändert?
Schönen Gruß
Dirk
P.S. Vielen Lieben Dank für das Tool und die ausführlichen Erklärungen. Tolllll !!!!!!
Hallo, Danke für das Feedback 🙂
Soweit ich das sehe hat sich an der API nichts geändert. Man muss bei Google eine Client ID usw angeben, ein Beispiel habe ich (für die Google Calendar API) hier beschrieben:
http://frank-it-beratung.com/blog/2014/05/05/tutorial-outlook-mit-dem-google-kalender-synchronisieren-api-programmierung-mit-visual-basic-teil-i/
Falls es wie dort beschrieben nicht klappt, einfach nochmals melden, dann helfe ich gerne.
Schöne Grüße,
Simon A. Frank
Hallo Sven, vielen Dank für das Feedback 🙂 – schön, dass mein Tool geholfen hat, so soll es sein!
Wie geil ist das denn?!?!
Ich brauchte etwas, um ein Page_Access_Token zu erhalten und fand nirgends ne Anleitung und das mit dem Graph-Api-Explorer wollte nicht so … dann per Zufall Dein Programm und ich hatte innerhalb einer Sekunde die gewünschte page_access_token.
Ich sitze seit Tagen an einem Problem, dass ich auf einer Facebook – Business Page posten wollte, aber unter dem Namen der Page und das wollte nie, da ich den Page Token brauchte.
Dein Programm hat mir sehr geholfen und wird bestimmt oft zum Einsatz bei mir kommen. sehr einfach zu bedienen!
Perfekt!!!
VG, Sven
Wer mit meinem Tool nicht klar kommt: Access-Tokens mit Facebook-Developers erstellen:
http://frank-it-beratung.com/blog/2014/03/31/access-tokens-mit-facebook-developers-erstellen/
Keiner weiß warum, aber es funktioniert jetzt, trotzdem danke für die Unterstützung.
Ja, ich hatte beide zusammen angeklickt: publish_stream und manage_pages. Unverändert die o.a. Fehlermeldung.
Ich habe es nicht geschafft, den Fehler zu reproduzieren. Besteht das Problem bei Dir immer noch oder war das nur temporär?
Danke, mit der neuen Version hat es jetzt geklappt. Aber ich habe zwei weitere Probleme:
1. Bei meinen beiden bisherigen Fanpage hatte ich ACCESS TOKEN, die ich dauerhat einsetzen kann (keine ständigen Aktualisierungen erforderlich). Bei meinem neuen ACCESS TOKEN muss ich ständig einen neuen erzeugen, da der alte abgelaufen ist. Wie bekomme ich einen dauerhaften ACCESS TOKEN.
2. Mit dem generierten ACCESS TOKEN kann ich nur auf meiner eigenen Fanpage posten, nicht aber auf fremden. Ich bekomme, die Fehlermeldung Code 200: Posts where the actor is a page cannot also include a Target_id\n other than EVENT or GROUP. Bei meinen übrigen Fanpages kann ich bei gleicher Vorgehensweise / Code auch auf fremden Fanpages posten.
Danke für die Hilfe…
Hallo LuRit, wie immer helfe ich gerne: Zu 1.) Leider hat FB den „offline_access“ sozusagen abgeschafft – für Seiten gibt es aber eine einfach Lösung. Details dazu findest Du in meinem Blogpost von April:
http://frank-it-beratung.com/blog/2013/04/05/facebook-api-alternative-losungen-fur-unbegrenzt-gultige-access-tokens-als-ersatz-fur-offline_access/
Das Problem 2.) Den Scope „publish_stream“ hattest Du schon ausgewählt? Falls ja ist mir dieses Problem unbekannt – ich werde mal versuchen, den Fehler zu reproduzieren und mich dann melden.
Funktioniert leider auch unter 1.3 nicht. Kann es sein, dass ich auf der Fanpage neben mich als Manager ebenfalls die Fanpage anmelden muss? Habe zwei weitere Fanpage, da ist ebenfalls die Fanpage als Manager eingetragen. Wenn ja, wie kann ich die Fanpage als Manager nachtragen? Danke für die Hilfe…
Kann ich mir nicht vorstellen, dass das notwendig ist. Wichtig ist nur, dass Du für einen User, der Manager bei der Seite ist, mit „manage_pages“ Permission erst einen normalen Access Token generierst (=1. Taste). Klick dann „Test Access Token“ (=2. Taste) um zu sehen, ob dieser überhaupt funktioniert. Wenn ja, dann die Access-Token für die Seiten abrufen (=3. Taste). Geht das so?
Heute habe ich eine neue Version (1.3) online gestellt. Die neuen Funktionen werden in Kürze in einem Blogpost beschrieben. Leider muss zuvor die Version 1.2 deinstalliert werden, damit 1.3 funktioniert (das automatische Update geht leider nicht).
Funktioniert der Access Token Manager noch? –
Ich habe App-ID eingegeben sowie publish_stream und manage_pages .
Get Access-Token funktiert einwandfrei.
Wenn ich anschließend aber get Access-Token for pages and apps aktiviere, erscheint die Meldung „{„data“:[]}“, nicht aber eine Auswahl meiner Fanpages.
Was läft verkehrt?
Hallo LuRit, habe es gerdade getestet: bei mir geht das einwandfrei. Vielleicht ein temporäres Problem bei Facebook?
Wegen eines aktuellen Bugs bei Facebook (Details siehe http://frank-it-beratung.com/blog/2013/08/28/aktueller-fehler-beim-facebook-api-login/) funktioniert der Access-Token-Manager nur mit einem Workaround: Immer zuerst auf die Schaltfläche ganz rechts („to facebook … to check/logout current user“) klicken, dann bei Facebook einloggen und dann erst „get Access-Token“ klicken!
Facebook hat schnell reagiert: Der Bug ist schon behoben, alles läuft wieder wie bisher!
danke für das Programm. Mit der Hilfe von Facebook bin ich verrückt geworden. Aber mit deiner Hilfe finde ich jetzt sogar auf Facebook den Page Access Token.
vielen Dank für das Feedback 🙂
Wichtige Infos zum „offline_access“:
http://frank-it-beratung.com/blog/2013/04/05/facebook-api-alternative-losungen-fur-unbegrenzt-gultige-access-tokens-als-ersatz-fur-offline_access/
Habe heute auf einem anderen Rechner das Tool installiert. Dort trat der Fehler auf. Hab dann auf meinem eigenen Rechner das Tool aufgerufen (war schon installiert und hatte auch schon funktioniert). Auch da das selbe Problem. Daher ist mir das aufgefallen. IE ist auf beiden vorhanden.
Leider kann ich den Fehler nicht reproduzieren. Vielleicht ist es eine Hilfe, das .net Framework zu aktualisieren / neu zu installieren:
http://www.microsoft.com/de-de/download/details.aspx?id=17851
Wenn ich mit dem Access Token Manager einen Token generieren möchte, sucht der die http_400_webOC von ieframe.dll
Hallo Andre, hat es an dem PC schon mal funktioniert? Falls ja hilft vielleicht eine Neuinstallation meines Tools. Falls nein: Wurde der Internet Explorer von dem Rechner entfernt?
Wegene einiger Anfragen: Mit meinem Tool kann man nicht nur für Google+ Tokens generieren, sondern für eigentlich alle APIs der „Google API Console“ https://code.google.com/apis/console/?
Hier ein paar Beispiele, wie das „Scope“ aussehen muss für …
Google Analytics:
https://www.googleapis.com/auth/analytics.readonly
Google Books:
https://www.googleapis.com/auth/books
Google Calendar:
https://www.googleapis.com/auth/calendar
Blogger:
https://www.googleapis.com/auth/blogger
Google Drive:
https://www.googleapis.com/auth/drive
Gmail:
https://mail.google.com/mail/feed/atom
Picasa:
https://picasaweb.google.com/data/
Hallo Rony, ich konnte keinen Fehler finden, möglichcherweise ein temporäres Problem? Falls es immer noch nicht geht wäre u.U. auch ein streng konfigurierter Firewall denkbar, also wenn möglich mal aus einen anderen Netz testen?
Ich kann es leider nicht Installieren. „Fehler“ bei der Installation…“
Fehler beim Herunterladen von „http://www.frank-it-beratung.de/setupdotnettools/FBAccessTokenManager/FBAccessTokenManager.application“.
Weitere Informationen finden Sie in der Setup-Protokolldatei unter „C:\Users\Samsung\AppData\Local\Temp\VSDDBF7.tmp\install.log“.
The following properties have been set:
Property: [AdminUser] = true {boolean}
Property: [InstallMode] = HomeSite {string}
Property: [ProcessorArchitecture] = AMD64 {string}
Property: [VersionNT] = 6.1.1 {version}
Running checks for package ‚Windows Installer 3.1‘, phase BuildList
The following properties have been set for package ‚Windows Installer 3.1‘:
Running checks for command ‚WindowsInstaller3_1\WindowsInstaller-KB893803-v2-x86.exe‘
…
‚Microsoft .NET Framework 4 Client Profile (x86 und x64)‘ RunCheck result: No Install Needed
Launching Application.
URLDownloadToCacheFile failed with HRESULT ‚-2146697208‘
Error: Fehler beim Herunterladen von „http://www.frank-it-beratung.de/setupdotnettools/FBAccessTokenManager/FBAccessTokenManager.application“.
Häufig werde ich gefragt, wie man statt unter seinem eigenen Namen „Max Mustermann“ im Namen seiner Seite „Mustermanns Fanpage“ mittels eines Scripts/Programms (beispielsweise wie in meinen Tutorials in diesem Blog beschrieben) eine Nachricht sendet oder andere Aktionen in Facebook durchführt. So geht’s:
1. „Max Mustermann“ muss Administrator der Seite „Mustermanns Fanpage“ sein (dies muss in Facebook eingestellt werden)
2. Man startet den Access-Token Manager und gibt wie gewohnt die App-ID ein. Unter Scope wählt man zusätzlich zu der benötigten Berechtigung (meist „publish_stream“) noch „manage_pages“
3. Jetzt klickt man auf „get Access-Token“, loggt sich als „Max Mustermann“ ein und generiert den „normalen“ Access-Token.
4. Sobald dieser generiert worden ist klickt man auf „get Access-Token for pages and apps“. Darauf werden alle Seiten und Apps, die „Max Mustermann“ administriert, angezeigt. Hier sucht man die Zeile „Mustermanns Fanpage“ heraus und sieht hier den Access-Token für diese Seite angezeigt.
5. Als Ergebnis hat man also zwei Access-Tokens: Verwendet man für ein Script oder Programm den „normalen“, erscheint das Post unter dem Namen „Max Mustermann“. Verwendet man jedoch den Access-Token der Seite, erscheint das Post unter dem Namen „Mustermanns Fanpage“.