Also da keiner eine Idee hat, kommt hier mein Schritt in Richtung der Lösung. Es funktioniert soweit, das per Graph-API alle Posts (feed) abgefragt und als Array angezeigt werden. Dabei wird der access_token abgefragt/genereriert und bei Bedarf erneuert, da er nur eine Gültigkeit von jeweils 2 Stunden hat. Das läuft somit automatisiert bei jeder Abfrage. Das Script wird natürlich noch erweitert. Hier aber schon vorab für alle, die wie ich ewig danach gesucht haben das funktionierende Script:
AutoIt
#include "WinHttp.au3"
#include <IE.au3>
#include <String.au3>
#include <Array.au3>
;; zur Vorbereitung muss einmalige eine Developer-App angelegt werden. Dazu bei Facebook normal
;; einloggen und anschließend im Browser auf 'developers.facebook.com' gehen.
;; Dort eine beliebige App anlegen und Ihre 'App-ID' merken. Dann unbedingt einen eine
;; 'Referr-URI' eintragen und merken!
;; Diese kann auch beliebige gewählt werden, muss aber im genauen Wortlaut ins Script
;; übernommen werden (s.u.)
Local $sToken = FileRead("Token.txt") ;; möglicherweise noch gültigen Token aus Datei laden
$sReturned = _APIanfragen($sToken) ;; API abfragen
If StringinStr($sReturned, 'Error') Then ;; Prüfen ob Token noch gültig, wenn nein generieren
Local $sToken = _Token() ;; Token generieren lassen
FileDelete ("Token.txt")
FileWrite ("Token.txt", $sToken) ;; Token in Datei speichern, da nur für ca. 2h gültig
$sReturned = _APIanfragen($sToken) ;; nochmals API-Abfrage mit neu geeriertem Token
EndIf
;; See what's returned (wird im JSON-Format zurückgegeben)
FileDelete ("Messages.html")
FileWrite ("Messages.html", $sReturned)
ShellExecute("Messages.html")
_Posts($sReturned) ;; Filtert aus JSON-Rückgabe die Posts heraus und zeigt sie an
Exit
;;----------------------------------------------------------------------------------------------
;; Funktionen
;;----------------------------------------------------------------------------------------------
Func _Token()
Local $sID = '<AppID>' ;; AppID eintragen (s.o.)
Local $sURI = 'http://localhost:8080/home.php' ;; ReferrURI-Beispiel
Local $sScope = 'manage_pages' ;; Rechte-Beispiel (Scope) anfordern, mit Komma getrennt sind mehrer möglich
MsgBox("","","Token wird abgefragt ...", 2)
Local $sURL = 'https://www.facebook.com/dialog/oauth?client_id=' & $sID & _
'&redirect_uri=' & $sURI & '&scope=' & $sScope &'&response_type=token'
;; Token anforden
Local $oIE = _IECreate('',1,0)
_IENavigate($oIE, $sURL, 1)
;; an Url angehängten Token aus Url herausfiltern
Local $sUrlToken = _IEPropertyGet($oIE, "locationurl")
$aUrlToken = StringRegExp($sUrlToken, 'access_token=(.*?)&expires', 1)
$sToken = $aUrlToken[0]
_IEQuit($oIE)
return ($sToken) ;; = access_token
EndFunc ;; --> Token
;;----------------------------------------------------------------------------------------------
Func _APIanfragen($sToken)
$sDomain = "https://graph.facebook.com" ;; API-Adresse
$sSubDomain = "/<NutzerID>" ;; eigene Nutzer_ID eintragen
$sKategorie = "/feed" ;; Abfrage-Kategorie
; Initialize and get session handle
$hOpen = _WinHttpOpen()
; Get connection handle
$hConnect = _WinHttpConnect($hOpen, $sDomain, $INTERNET_DEFAULT_HTTPS_PORT)
; SimpleSSL-request it...
$sReturned = _WinHttpSimpleSSLRequest($hConnect, 'GET',$sSubDomain&$sKategorie&'?access_token='&$sToken, $sDomain)
; Close handles
_WinHttpCloseHandle($hConnect)
_WinHttpCloseHandle($hOpen)
return $sReturned
EndFunc ;; ---> _APIanfragen
;;----------------------------------------------------------------------------------------------
Func _Posts($sReturned)
Local $aPosts = StringRegExp( $sReturned, 'message":"(.*?)","actions', 3)
_ArrayDisplay($aPosts)
EndFunc ;; --> Posts
;;----------------------------------------------------------------------------------------------
Alles anzeigen