Fritz!Box API für PHP (inkl. Login-Sessions)

In der fritzbox_api.class.php.
Such dort nach

protected function initSID()

und dann nach

$output = $this->doPostForm($formfields);

dahinter ein

echo $output; exit;

setzen und gucken was ausgegeben wird.
Ich kann leider nicht die Zeile sagen da ich die Datei verändert habe.
Die Ausgabe kannst Du dann hier mal posten, das hilft bestimmt weiter.
 
Mehr als das kam nicht:
Response of initialization call /login_sid.lua in initSID was not xml-formatted.
 
Das dürfte technisch nicht möglich sein sofern das der erste Aufruf ist und keine Session-Id vorliegt.
Dann dürfte nur eine weiße Seite kommen oder die Antwort.
Bei Deiner Meldung ist die Api schon über das exit; hinaus gegangen was technisch unmöglich ist.
Eventuell mal die Cookies und den Cache im Browser löschen.
 
Cookies und den Cache habe ich im Browser gelöscht.
Auch habe ich es mit Google Chrome versucht.

Habe die Zeile unter eingefügt dahinter passiert auch nichts anderes:
$output = $this->doPostForm($formfields);
echo $output; exit;

diese Ausgabe bekomme ich wenn ich es über xampp mache:
<?xml version="1.0" encoding="utf-8" ?>
- <SessionInfo>
<SID>80c79148198925bd</SID>
<Challenge>805a4df8</Challenge>
<BlockTime>0</BlockTime>
- <Rights>
<Name>Phone</Name>
<Access>2</Access>
<Name>Dial</Name>
<Access>2</Access>
<Name>HomeAuto</Name>
<Access>2</Access>
<Name>BoxAdmin</Name>
<Access>2</Access>
</Rights>
</SessionInfo>
 
Zuletzt bearbeitet:
Die Minuszeichen da drin sind hoffentlich nicht real, ansonsten dürften die wirklich zu ungültigem XML führen.
Nichtsdestotrotz scheint der Zugriff vom Server nicht da hin zu leiten, wo er hin soll, ich vermute hier dennoch einen Routing-Fehler.
 
Es scheint an den Webserver von gigahost zu liegen.
Auch bei hostingxxxxx Webserver brachte das gleiche Problem.
Bei strato hat es funktioniert dafür funktionieren andere Funktionen nicht.
 
Zuletzt bearbeitet:
Bei den Billig-Anbietern wie Giga, 1Blue und dem ganzen Müll sind Proxy-Seiten vorgeschaltet.
Wenn die der Meinung sind der Server ist auf dem entsprechenden Protokoll nicht erreichbar,
dann schalten die eigene Seiten davor. Absolut nervtötend und unproduktiv.
Achtung! Das gleiche macht Alice (inzwischen der O2 Müll) bei den Privatkunden ebenfalls!!!

Da hilft nur den Provider zu wechseln. Ein paar Euro drauf und der Dops ist gelutscht.
 
Das Problem ist ja das nicht immer alles auf Webserver möglich ist wie man sieht.
Oft haben günstigere Anbieter mehr Möglichkeiten mit PHP zu arbeiten als die
größeren Anbietern.
Wenn man jedoch weis welche Funktion man benötigt kann man diese beim
Anbieter nachfragen ob möglich oder nicht es einzurichten.
Da kann einen wohl eher geholfen werden als bei den Großen.
Wurde gerne wissen was mein Webserver Anbieter freischalten muß um
mit dieser Fritz API arbeiten zu können.
 
Das dürfte da weniger mit Freischalten zu tun haben. Wenn Du keinen großen Load verursachst reicht auch ein vServer den es schon für unter 10 EUR/Monat gibt. Ich weiß nicht wieviel Du im Moment ausgibst, aber zu den guten Anbietern mit vernünftigen Preisen zählen z.B. Hetzner und Hosteurope.
Beide kann ich wärmstens empfehlen.
 
Apache soll doch auch auf der Fritzbox 7390 laufen.
Sollte doch auch funktionieren oder?
 
!!! Bitte fritzbox_api_php auf GitHub weiterentwickeln !!!

Es ist unnötig aufwendig, sich durch 7 Seiten Diskussion zu wühlen. Außerdem kann fritzbox_api_php nicht in andere Projekte eingebunden werden.

Vorteile GitHub:

- zentrale Download-Möglichkeit
- verteilte Versionsverwaltung
- einfache Synchronisierung des Codes verschiedener Entwickler durch Fork/Pull-Request
- One-Klick-Releases
- Issue-Tracker
- Einbindung in andere Projekte als GIT-Submodule
 
Es ist unnötig aufwendig, sich durch 7 Seiten Diskussion zu wühlen. Außerdem kann fritzbox_api_php nicht in andere Projekte eingebunden werden.

Wie bist Du denn drauf. Die Diskussion hier dient zur Hilfestellung von Problemen die nichts mit der API selbst zu tun haben.
Und natürlich kann man die API in andere Projekte einbinden, also ist die Aussage vollkommener Quatsch. Dafür ist es eine API, übersetz Dir die 3 Buchstaben mal, dann geht da vielleicht ein Licht auf.

An pol0815:
Klar, Du erreichst Deine Fritzbox ja auch korrekt aus dem LAN. Wenn Du Deine Fritzbox mit dem Browser ebenfalls aufrufen und Dich einloggen kannst, werden hier auch keine Probleme vorliegen.
Ich vermute das Problem daher eher bei Deinem Provider. Also, eigenen (v)Server bestellen und ab die Post. Kündigungsfrist ist bei denen meist 1 Monat, also nicht viel zu verlieren.
 
Und natürlich kann man die API in andere Projekte einbinden, also ist die Aussage vollkommener Quatsch. Dafür ist es eine API, übersetz Dir die 3 Buchstaben mal, dann geht da vielleicht ein Licht auf.

Ohne Login ins Forum ist es gar nicht möglich, den Code herunterzuladen - Nicht-IP-Phone-Forum-Nutzer sind also vom Download ausgeschlossen. Eine direkte Einbindung in eigenen Code als Git-Modul ist auch nicht möglich - dadurch müssen Updates der fritzbox_api_php immer manuell eingepflegt werden. Ein Bug-Tracker ist auch übersichtlicher als ein Thread mit 132 Beiträgen. Dieser zusätzliche Zeitaufwand sollte lieber in Qualität und Features investiert werden ...

Um Deinem Wunsch nachzukommen API = Application Programming Interface = Programmierschnittstelle :)
 
Richtig, Schnittstelle. Heisst, einbinden, über die Schnittstelle ansprechen und nutzen. Und das ist ja wohl unabhängig von Git. Und natürlich muss man den Code bei Bedarf manuell updaten. Braucht man aber nur wenn man für sein Programm Updates programmiert weil man ja für das aktuelle release entwickelt.
Also verstehe ich nicht was du immer mit deinem git hast, ich brauche so was nicht ehrlich gesagt.

Und falls du dir den thread hier durch gelesen hast ging es die letzten Seiten nicht um einen Bug sondern um Probleme die nicht an der API liegen. Wenn du git willst mach doch git, aber lass den Leuten hier doch ihr Forum.
 
Richtig, Schnittstelle. Heisst, einbinden, über die Schnittstelle ansprechen und nutzen. Und das ist ja wohl unabhängig von Git. Und natürlich muss man den Code bei Bedarf manuell updaten. Braucht man aber nur wenn man für sein Programm Updates programmiert weil man ja für das aktuelle release entwickelt.
Also verstehe ich nicht was du immer mit deinem git hast, ich brauche so was nicht ehrlich gesagt.

API heißt, eine über Updates und Versionen hinweg unveränderte Programmierschnittstelle zu haben. D.h. Bugs werden behoben, aber Klassen und Methodensignaturen bleiben unverändert. Neue Funktionen werden über neue Klassen bzw. neue Methodenaufrufe hinzugefügt, ohne die bestehenden inkompatibel zu verändern. Aber auch wenn keine neuen Funktionen hinzukommen, braucht man Updates für Bugfixes. Professionelle Softwareentwickler werden grundsätzlich ein Versionierungssystem, wie GIT, verwenden und deshalb einen Bogen um "Bibliotheken", wie Fritz!Box_API_PHP machen, die auch noch unübersichtlich in einem passwortgeschützten Forum versteckt sind. Da es für fritzbox_api_php unter https://github.com/carlos22/fritzbox_api_php schon ein Repository gibt, würde eine Pflege erheblich mehr professionelle Entwickler anziehen und das Projekt vorantreiben. Releases können mit einem Klick aus dem GIT-Repository erzeugt werden (und im Forum verlinkt werden). Außerdem kann jeder Entwickler https://github.com/carlos22/fritzbox_api_php in sein Projekt-Repository als Submodule integrieren. Bei einem Release wird der aktuelle fritzbox_api_php-Code automatisch in das Release-Paket eingebunden.

Und falls du dir den thread hier durch gelesen hast ging es die letzten Seiten nicht um einen Bug sondern um Probleme die nicht an der API liegen. Wenn du git willst mach doch git, aber lass den Leuten hier doch ihr Forum.

Genau das meine ich. Allgemeine Diskussion werden mit Bug-Reports, Feature Requests, Release-Links, etc. vermischt und man muss 134 Beiträge durchlesen, um zu verstehen, wie der aktuelle Stand ist. Ich will niemandem das Forum nehmen, im Gegenteil. Das Forum soll ja gerade für Diskussionen genutzt werden. Aber der Code sollte übersichtlich und versioniert verfügbar sein.
 
Nö, API heißt Schnittstelle, mehr nicht. Und wenn Du so auf Git abfährst mach Dir doch Dein eigenes Git Zeug, dann kannst Du die API manuell herunter laden und von Deinen Programmen per Git updaten.
Uns allen reicht es so wie es ist und wir sind mehr als zufrieden dass wir derart an der Entwicklung teilhaben dürfen.
Für uns funktioniert das mit den Updates und Modulen alles so perfekt wie es ist.
Und wenn Du als "professioneller Entwickler" die API nicht nutzen möchtest, dann lass es doch einfach sein?
Wir kommen alle damit klar so wie es ist, also wo ist Dein Problem?
Wenn Du es besser kannst bau Dir Deine eigene API und setz die ins Git, ansonsten sei froh dass sich jemand so viel Mühe gemacht hat und das auch noch hier kostenlos zum Herunterladen bereitstellt. Und ehrlich gesagt... mit der Suchfunktion habe ich hier bisher alles gefunden was ich brauchte und das ohne Ausnahme.
Ich bleibe hier, brauche nicht zwangsweise Git und bin mehr als glücklich wie es ist.
Und ich denke die Mehrheit hier auch sonst würden nicht so viele teilnehmen.

In diesem Sinne ein Dankeschön an carlos22 für seine Mühe und Arbeit :groesste:
 
Hallo,

estmal ein großes Dankeschön für die fritzbox_api_php !
Ich nutze die fritzbox_ring_phone.php in Verbindung mit einer EIB Bus Installation um Ereignisse zu signalisieren wie z.B. Es klingelt an der Haustür.
Nun möchte ich aber anhand unterschiedlicher Klingeltöne unterscheiden ob es am Tor oder der Haustür klingelt.

Gibt es eine Möglichkeit beim Anruf eines Telefones verschidene Klingeltöne zu verwenden ?

Gruß Frank
 
Nicht ohne weiteres. Den Kontakten kann man eigene individuelle Klingeltöne zuweisen.
 
... kann man denn irgendwie im Script vorgaukeln dass Kontakt ... anruft ?

Gruß Frank
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.