Ankündigung

Einklappen
Keine Ankündigung bisher.

AJAX & Instagram Abfragen

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • AJAX & Instagram Abfragen

    Moin zusammen,

    ich wollte mir mal eine Instagram Follower API selber basteln und möchte ja sowas wie ein Live Counter haben.
    Problem ist, wenn ich mit AJAX die Daten abrufe und sie dann auf meine Seite eintragen lasse, wird ja immer eine Anfrage auf diese API durchgeführt.
    Ich darf aber nur 200x in 1h darauf zugreifen. Und alle 25-30 Sekunden will ich das jetzt nicht unbedingt laden. Sondern halt jede Sekunde.

    Wie mach ich das am besten ?

    Mein Code bis jetzt:
    PHP-Code:
    <html>
        <head>
            <title class="title_text"></title>
            <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.js"></script>
        </head>
        <body>
            <div class="container">    
                <h2><strong class="instagram" style="font-size:75px;"></strong></h2>
            </div>
            <script type="text/javascript">    
                //Daten werden geladen...
                var token = '<?php include("access_token.dat"); ?>';
                $.ajax({
                    url: 'https://api.instagram.com/v1/users/self',
                    dataType: 'jsonp',
                    type: 'GET',
                    data: {access_token: token},
                    success: function(data){
                        var title_username = data['data']['username'];
                        var follows = data['data']['counts']['followed_by'];
                        var error = data['error_message'];

                        $(".title_text").text(title_username);
                        $(".instagram").text(follows);
                        $(".instagram").text(error);
                    },
                    error: function(data){
                        console.log(data);
                    }
                });

                //Daten werden jede Sekunde neu geladen...

                var sec = 1; //hier stürzt er halt nach 200 Sekunden ab da nur 200 Anfragen erlaubt werden
                function updateDiv()
                {
                    var token = '<?php include("access_token.dat"); ?>';
                    $.ajax({
                        url: 'https://api.instagram.com/v1/users/self',
                        dataType: 'jsonp',
                        type: 'GET',
                        data: {access_token: token},
                        success: function(data){
                            var title_username = data['data']['username'];
                            var follows = data['data']['counts']['followed_by'];
                            var error = data['error_message'];

                            $(".title_text").text(title_username);
                            $(".instagram").text(follows);
                            $(".instagram").text(error);
                        },
                        error: function(data){
                            console.log(data);
                        }
                    });
                }
                window.setInterval("updateDiv()", (sec * 1000));

            </script>
        </body>
    </html>
    Ist es überhaupt möglich die Daten immer neu zu laden ohne eine Anfrage an den Server zu geben ?
    Nein oder ?


  • #2
    Du nutzt Ajax, dann greift jeder User 3600/h auf Instagramm zu ^^

    Kommentar


    • #3
      Zitat von tomBuilder Beitrag anzeigen
      Du nutzt Ajax, dann greift jeder User 3600/h auf Instagramm zu ^^
      ? Ehm ich weiß ? ... deshalb auch meine Frage, worin steht:
      "
      Ich darf aber nur 200x in 1h darauf zugreifen. Und alle 25-30 Sekunden will ich das jetzt nicht unbedingt laden. Sondern halt jede Sekunde.

      Wie mach ich das am besten ?
      "

      Kommentar


      • #4
        Dann nutz deinen Webserver als eine Art Cache.
        Der Webserver spricht die Instagram API in regelmäßigen Intervallen an und speichert die Rückgabe entsprechend. Deine Website greift dann auf einen Endpoint auf deinem Webserver zu, welcher wiederum den zwischengespeicherten Wert zurückgibt.
        "Software is like Sex, it's best if it's free." - Linus Torvalds

        Kommentar


        • #5
          Zitat von JaMa Beitrag anzeigen
          Dann nutz deinen Webserver als eine Art Cache.
          Der Webserver spricht die Instagram API in regelmäßigen Intervallen an und speichert die Rückgabe entsprechend. Deine Website greift dann auf einen Endpoint auf deinem Webserver zu, welcher wiederum den zwischengespeicherten Wert zurückgibt.
          Klingt gut, nur kp wie was wo ... Und dann ist der Counter ja nicht mehr live oder ?
          Ich mein er wird ja zwischengespeichert und dann erst nach ner Zeit abgefragt ?!

          Kommentar


          • #6
            Ich darf aber nur 200x in 1h darauf zugreifen. Und alle 25-30 Sekunden will ich das jetzt nicht unbedingt laden. Sondern halt jede Sekunde.
            Nach Adam Riese wird das nicht funktionieren.
            Klingt gut, nur kp wie was wo ...
            Zeit der letzten Daten prüfen -> ggf. Abfragen -> Ergebnis und Zeit Speichern
            In der Ausgabe verwendest du dann einfach deine gespeicherten Daten.

            Kommentar


            • #7
              Yep, du bist ja an die API-gebunden und wenn die API sagt es geht nur 200/Stunde dann ist das so.

              Kommentar


              • #8
                Zitat von LudwigBr Beitrag anzeigen
                Zeit der letzten Daten prüfen -> ggf. Abfragen -> Ergebnis und Zeit Speichern
                In der Ausgabe verwendest du dann einfach deine gespeicherten Daten.
                Kurzer Ansatz als hilfe, stehe nämlich voll auf dem Schlauch :'D

                Kommentar


                • #9
                  Mit PHP und cURL auf deinem Webserver?
                  EDIT: Das Abfragen der Instagram API würde ich in einen Background Prozess auslagern, welcher in eine DB schreibt.

                  Wenn du von einem maximum an 200 Requests pro Stunde an die Instagram API ausgehst und entsprechend die Intervalle so einstellst, dann ist der maximale Delay 18 Sekunden.
                  "Software is like Sex, it's best if it's free." - Linus Torvalds

                  Kommentar


                  • #10
                    Zitat von PlatinSecurity Beitrag anzeigen

                    ? Ehm ich weiß ? ... deshalb auch meine Frage, worin steht:
                    "

                    "
                    offensichtlich eher nicht, denn es kann sein, dass Du in einer Sekunde Deine 200 Api Calls verraucht hast; denn Du wolltest Ajax nutzen.
                    Ob ein Worker, wie Ihn JaMa vorschlägt sinnvoll ist, oder auch ein Abfragen on demand reicht, liegt an der Nutzung Deeiner Seite.
                    Wenn da pro Tag 10 Leute vorbeischauen, halte ich 24x200 Abfragen für unnötig.
                    Zudem fragt man sich beim Worker, was eine sekundliche aktualisierung bringen soll, wenn jeweils 20 mal hintereinander das selbe Ergebniss kommt,
                    habe ich auch noch nicht verstanden.

                    Wie Du sekundliche Änderungen an deinem Instagramm Channel Submittest, will ich eher nicht wissen,
                    dass es sinnvoll wäre diese Änderungen über Deinen Server zu amchen, wenn möglich, um alle Änderungen Sekunden genau zur Verfügung zu haben,
                    muss ja nicht gesondert erklärt werden.

                    Mir wäre eine genauere Erklärung Deines Vorhabens durchaus angenehm.

                    Kommentar


                    • #11
                      Er möchte die aktuelle Anzahl seiner Follower auf Instagram als Live Counter darstellen.
                      Aber du hast Recht, wenn es nur relativ wenig User sind, kann auch auf das Alter des letzten Requests geschaut werden und demzufolge dann ein Request an die Instagram API gestartet werden.
                      "Software is like Sex, it's best if it's free." - Linus Torvalds

                      Kommentar


                      • #12
                        Zitat von JaMa Beitrag anzeigen
                        Er möchte die aktuelle Anzahl seiner Follower auf Instagram als Live Counter darstellen.
                        Wohw.
                        bei jeder Sekunde ein neuer Follower:
                        - bekommt man nach zwei stunden erste angebote von Marketing Firem
                        - ist nach drei Sunden kein Mikro Influencer mehr
                        - ist man nach weniger als 36 Stunden kein Medi Influencer mehr.

                        Ehrgeizige Ziele,
                        in ca vier Jahren hast Du die heutige TOP one von Instagram überhohlt (wenn dort keine neuen dazu kommen),
                        andere freuen sich, wenn Sie nach unter drei Monaten medi Influencer werden.

                        Ich würde zeitnah mit einer Agentur sprechen:
                        https://www.wuv.de/specials/influenc...ncer_marketing






                        Kommentar


                        • #13
                          Ein Live Counter gibt die aktuelle Anzahl an Followern aus und aktualisiert sich selbstständig.
                          Das hat nix mit einem Follower pro Sekunde generieren zu tun.
                          "Software is like Sex, it's best if it's free." - Linus Torvalds

                          Kommentar


                          • #14
                            Zitat von JaMa Beitrag anzeigen
                            Ein Live Counter gibt die aktuelle Anzahl an Followern aus und aktualisiert sich selbstständig.
                            Das hat nix mit einem Follower pro Sekunde generieren zu tun.
                            Danke, das war mir nach der ersten Erklärung auch schon klar.
                            Ein Bestehen auf sekundliche Aktualisierung macht in meinen Augen aber nur Sinn, wenn sich die Zahl annähernd sekündlich ändert.

                            Die Idee Folower per API generieren zu können, gib zu es ist absurd.

                            Kommentar

                            Lädt...
                            X