1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Horus92

Beiträge von Horus92

  • Autoit & Facebook Graph-API mit WinHttp möglich?

    • Horus92
    • 18. September 2015 um 22:25

    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

    :klatschen:

  • Autoit & Facebook Graph-API mit WinHttp möglich?

    • Horus92
    • 15. September 2015 um 07:14

    Hallo!

    Ich versuche seit längerer Zeit meine Facebook-Seite per Autoit mit der Graph-API zu erreichen. Leider bisher erfolglos.

    Kennt jemand eine Möglichkeit, wie das mit vorhandenem Access-Token und Developer-App und WinHttp in Autoit umsetzbar umsetzbar wäre? Anleitungen für Java und PHP gibt es ja. aber ich möchte gern bei meiner "Lieblingsprogrammiersprache" Autoit bleiben.

    MfG, Horus92

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™