1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Mitglieder
  3. flyingtable07

Beiträge von flyingtable07

  • OneDrive oder Google Drive

    • flyingtable07
    • 18. Juli 2023 um 17:02
    Zitat von Syntafin

    Telekom MagentaEins, Amazon Web Services, Hetzner, DigitalOcean.

    Alles Anbieter die echte Dienstleistungen anbieten. Und gerade "Prepaid Hoster" sind der größte Scam, Abertausende "Kunden" auf einem VPS mit 128mb RAM und 1 vCPU.

    Bei dem "Prepaid Hoster" DeinServerHost bekomme ich .de Domais für 3.99 im Jahr dauerhaft. Ich kenne keinen besseren Anbieter auch nicht von den echten Dienstleistern.

  • OneDrive oder Google Drive

    • flyingtable07
    • 17. Juli 2023 um 19:25

    uff ist das alles kompliziert. Einfach nur Anbieter nutzen für die man kein Schufa braucht. Aldi Talk, Prepaid Hoster...

  • Ich bin am verzweifeln

    • flyingtable07
    • 14. Juli 2023 um 19:11

    Niemand kann mir helfen :loudly_crying_face: :loudly_crying_face: :loudly_crying_face:

  • Ich bin am verzweifeln

    • flyingtable07
    • 14. Juli 2023 um 19:00

    Ich bin am Verzeifeln.

    Ich muss unbedingt Destop Benachrichtigungen für meine PWA haben. Es wird ein provat chat und immer wenn jemand was schreibt sollen die anderen die meldung bekommen "Neue Nachricht von ..". Bei Handys soll die dann auch auf dem Sperrbildschirm angezeigt werden. Die Benachrichtigungen müssen auch escheinen wenn die App geschlossen ist, wie bei Discord.
    Den Client Site code habe ich easy hinbekommen

    PHP
     notificationHelper.registerServiceWorker('/sw.js');
    function urlBase64ToUint8Array(base64String) {
            const padding = '='.repeat((4 - (base64String.length % 4)) % 4);
            const base64 = (base64String + padding)
                .replace(/\-/g, '+')
                .replace(/_/g, '/');
    
            const rawData = window.atob(base64);
            const outputArray = new Uint8Array(rawData.length);
            for (let i = 0; i < rawData.length; ++i) {
                outputArray[i] = rawData.charCodeAt(i);
            }
            return outputArray;
        }
        var notificationHelper = {
            isSupported() {
                if (!window.Notification) {
                    return false;
                }
                if (!('serviceWorker' in navigator)) return false;
                return 'PushManager' in window;
            },
            urlBase64ToUint8Array(base64String) {
                const padding = '='.repeat((4 - base64String.length % 4) % 4);
                const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/');
                const rawData = window.atob(base64);
                const outputArray = new Uint8Array(rawData.length);
                for (let i = 0; i < rawData.length; ++i) {
                    outputArray[i] = rawData.charCodeAt(i);
                }
                return outputArray;
            },
            createNotificationSubscription(pushServerPublicKey) {
                return navigator.serviceWorker.ready.then(function(serviceWorker) {
                    return serviceWorker.pushManager
                        .subscribe({
                            userVisibleOnly: true,
                            applicationServerKey: urlBase64ToUint8Array(pushServerPublicKey)
                        })
                        .then(function(pushSubscription) {
                            var subJSObject = JSON.parse(JSON.stringify(pushSubscription));
                            var subscription = {
                                'endpoint': subJSObject.endpoint,
                                'authToken': subJSObject.keys.auth,
                                'publicKey': subJSObject.keys.p256dh,
                                'contentEncoding': 'aesgcm'
                            }
                            return subscription;
                        });
                });
            },
            registerServiceWorker(file) {
                if (!navigator.serviceWorker) return;
                navigator.serviceWorker.register(file);
            }
        }
        function request_permission() {
            Notification.requestPermission(function (status) {
                if (status === 'granted') {
                    notificationHelper.createNotificationSubscription("<?php echo htmlspecialchars($key_public); ?>").then(function (subscription) {
                        console.log(subscription);
                        fetch('/push', {
                            method: 'POST',
                            headers: {
                                'Content-Type': 'application/x-www-form-urlencoded',
                            },
                            body: 'data=' + encodeURIComponent(JSON.stringify(subscription)),
                        });
                    });
                } else {
                    console.log(status);
                    setTimeout(request_permission, 5000);
                }
            });
        }
        request_permission();
    Alles anzeigen

    Wenn Jemand die Website öffnet und Benachrichtigungen zulässt bekomme ich die Push Daten auf dem Server. Diese werden dann in einer Datenbank gespeichert, oder wenn bereits vorhandne ersetzt. So verhindere ich, dass ein und dasselbe gerät die benachrichtigung doppelt bekommt. wenn jemamnd aber meherere geräte hat bekommen trotzdem alle die benachrichtigung. Das funktioniert auch alles. In der Dtanebank hab ich dann JSON einträge die wie die folgenden Aussehen:

    Code
      [{"endpoint":"https:\/\/wns2-am3p.notify.windows.com\/w\/?token=BQYAAADxhCaa2w1NkpcJ3ITbt7Akq0FMaUvOr6eY9IcTJfH0Uyh5bMAqoc%2fiw4W3ePDlIMroJjukFqCWIGQ5HTTGysqK31mZUBLUnWAbEa1CUO0NatmYIXqmBcICR8QdBJBBHkGYOi4PR3rAKUob9J6fNvpdYBmPQI03OGk9mU9fyDNTOeghaa8LFTd2wM5jlgGfUFkfSf5iTuz9%2fBfk%2fQuT7ChHfBajQKmKz91j2MQpjvGfdEBFmoDEKq2qfB%2fwmFvkkAswGQiFwI%2bMnGqB%2bpXHVGRxGFjZw%2bXestloVF%2f9j15pk0AKwqqxl%2fFtiV%2f2CVLbnsc%3d","authToken":"MMXpFVr9sGYXvquvAlZuyA","publicKey":"BPlyW1ROqnYdys3ono36BhsvqdFVBdfeC6jtBNrPMRxnYTPPL8QsDYQTmYfwGFE7aSQoAm75E6Nc3UIcfHYib2Q"},{"endpoint":"https:\/\/wns2-am3p.notify.windows.com\/w\/?token=BQYAAADxhCaa2w1NkpcJ3ITbt7Akq0FMaUvOr6eY9IcTJfH0Uyh5bMAqoc%2fiw4W3ePDlIMroJjukFqCWIGQ5HTTGysqK31mZUBLUnWAbEa1CUO0NatmYIXqmBcICR8QdBJBBHkGYOi4PR3rAKUob9J6fNvpdYBmPQI03OGk9mU9fyDNTOeghaa8LFTd2wM5jlgGfUFkfSf5iTuz9%2fBfk%2fQuT7ChHfBajQKmKz91j2MQpjvGfdEBFmoDEKq2qfB%2fwmFvkkAswGQiFwI%2bMnGqB%2bpXHVGRxGFjZw%2bXestloVF%2f9j15pk0AKwqqxl%2fFtiV%2f2CVLbnsc%3d","authToken":"MMXpFVr9sGYXvquvAlZuyA","publicKey":"BPlyW1ROqnYdys3ono36BhsvqdFVBdfeC6jtBNrPMRxnYTPPL8QsDYQTmYfwGFE7aSQoAm75E6Nc3UIcfHYib2Q"}]

    Das sieht mir auch richtig aus, oder?

    Wenn ich jetzt Benachrichtigungen senden will mache ich das wie folgt. Ich bin ja immer etwas abgeneigt gegenüber fremden bibliotecken und modulen aber weil ich keine anderen tutorials gefunden hab, hab ich mich für die php bibliteck web-push entschieden. Mit ein bischen rumprobieren, weil meine web-push version offenbar neuer war als die im tutorial (eine methode hatte einen andernen namen) sah der code am ende funktionsfähig aus.

    Code
     $key_public = "BOwepYjLEZEMN0YPlh1NJOr4keeVYEta6mSq4GHX22Uiml9_768M-sHMJpljNRbui7r7C5APr2yjmiwTs3LlcLg";
    $key_private = "O7i8vFrZ7HUaNYAl2Wv7Ds8_Gu2pUg-bD8Ddftuy5lc";
    
     $auth = [
            'VAPID' => [
                'subject' => 'https://lanparty2023.de',
                'publicKey' => $key_public,
                'privateKey' => $key_private
            ]
        ];
        $payload = [
            "title" => "Neue Nachricht von ".$_POST["name"],
            "body" => $_POST["text"] ?? "",
            "badge" => "/image.jpg",
            "icon" => "/favicon.ico",
            "image" => "https://lanparty2023.de/image.jpg",
            "tag" => "Programmierer Lanparty",
            "actions" => [
                [
                    "action" => "open",
                    "title" => "Nachricht lesen"
                ],
                [
                    "action" => "open",
                    "title" => "Antworten"
                ]
            ],
            "data" => [
                "open" => "/invite/",
                "default" => "/invite/"
            ],
            "vibrate" => [300, 100, 400]
        ];
    $webPush = new \Minishlink\WebPush\WebPush($auth);
    $has = array();
        foreach($pushTokens as $data){
            if(isset($has[json_encode($data)])) continue;
            $has[json_encode($data)] = true;
          
    $subscription = \Minishlink\WebPush\Subscription::create($data);
    
    $result = $webPush->sendNotification(
        $subscription,
        $payload
        );
    echo $result;
        exit();
    Alles anzeigen

    Und das Funktionier einfach nicht!!!!! :pouting_face: Egal was ich tue. Seid stunden bin ich am rumprobieren. Es heißt immer Response 401 - Unatorizied
    ich habe auch schon chatgpt noch einer manullen version über curl gefragt aber die ist so dumm und unssing, dass kein Broweser die Anfrage überhaupt erst akzeptiert.
    Ist mein Valid Keys vielleicht falsch? oder woran kann es noch liegen? ich habe es mit 4 verschiedenen browsern, 2 computern, 1 handy und browserling probiert aber überall erhalte ich 401.

    Ich wäre meinem Retter unendlich dank bar :grinning_face_with_smiling_eyes:

  • Opera One

    • flyingtable07
    • 11. Juli 2023 um 20:35
    Zitat von Syntafin

    Die Quelle, nicht den Virenverteiler.

    Aber hey, Pacman regelt, für Windows heißt das glaube Winget.

    aha

  • Opera One

    • flyingtable07
    • 10. Juli 2023 um 21:44
    Zitat von Syntafin

    Da bist du aber selbst schuld, da du Chip vereendest. Zudem, dürfte die Option abschaltbar sein, da es sonst ja untergejubelt wäre.

    Ich bin es geohnt bei Installern jeglicher Art immer auf Weiter, Weiter, Weiter zu klicken, beziehungsweise Enter zu spammen. Und bei Chip muss man bei der Abfrage Wollen Sie Opera GX installieren immer auf Abbrevchen drücken nicht auf weiter. Und welche Quelle empfilst du für Sachen wenn nicht Chip?

  • Opera One

    • flyingtable07
    • 10. Juli 2023 um 14:59

    Opera ist so ein Spam. Es installiert sich dauernt versehntlich über solche sus programme wie Chip Installer. ich hatte schon so viele komische versionen von opera auf meiner festplatte und möchte mit so einem aufdringlichen unternehmen nicht zu tun haben.

  • Stabiler und sicherer Matrix Server

    • flyingtable07
    • 7. Juli 2023 um 19:37
    Zitat von Tom

    Du verbindest dich zu WhatsApp und Co.

    Deine Nachrichten und Kontakte können dir dann ganz normal schreiben.

    aha

  • Smalltalk - Chatten, Diskutieren....

    • flyingtable07
    • 7. Juli 2023 um 14:20

    Die Arme frau, was muss ich tun?

  • Stabiler und sicherer Matrix Server

    • flyingtable07
    • 7. Juli 2023 um 14:17
    Zitat von ai3x

    Xmpp bzw. die abgewandelte Version z.B. bei WhatsApp läuft zentral. Matrix bietet die gleichen Funktionen nur dezentral an.

    Da aber nicht alle Freunde direkt wechseln wollen oder können nutzt man zusätzlich die Bridge. So hat man alle Messenger in einem.

    Matrix wird von verschiedenen Opern source Entwicklern als der Standard vorausgesetzt. Die Linux Group die ich nutze genauso wie der Maler Space in dem ich aktiv bin.

    Ich bin jetzt auf Toms Server…läuft super bis her.

    dann müssen aber alle messager die bridge unterstützen oder? und bei whatsapp brauch man telefonnummern wie ist das kompatiebel?

  • OneDrive oder Google Drive

    • flyingtable07
    • 7. Juli 2023 um 14:16
    Zitat von TretPorsche

    0,63ct aus Argentinien, nach kommender Preiserhöhung im August etwa 3€ fürs Master Abo.

    überteuert

  • Smalltalk - Chatten, Diskutieren....

    • flyingtable07
    • 7. Juli 2023 um 14:15
    Zitat von Syntafin

    Dazu möchte ich mal sagen, das es natürlich gut ist wenn man selbst weiß wie etwas funktioniert, es kommt aber die Zeit, da will man sich mit den ständigen Boilerplate arbeiten nicht mehr ärgern und vor allem auf das wesentliche konzentrieren.

    Genau da greifen Frameworks wie Laravel, Symfony, CodeIgniter oder sogar WCF.

    Aber gerade bei Mammut Aufgaben wie zB ein PSR-7 fähiger HTTP Client, muss man sich wahrlich nicht selbst antun, denn Guzzle liefert es fertig, ist verbreitet, aktiv gepflegt und der Quellcode ist öffentlich.

    Mal als Beispiel, hier ein Vergleich wie die selbe Aufgabe aussieht, wenn du den cURL Client händisch konfigurierst oder Guzzle verwendest:

    PHP: curl.php
    <?php
    
    $url = 'https://discord.com/api/v10/guilds/{SERVER_ID}/channels';
    $token = 'YOUR_DISCORD_TOKEN';
    
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Authorization: Bot ' . $token,
        'Content-Type: application/json'
    ]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    if ($response) {
        $data = json_decode($response, true);
        // Verarbeite die erhaltenen Daten
        var_dump($data);
    } else {
        echo 'Fehler beim Abrufen der Daten.';
    }
    Alles anzeigen
    PHP: guzzle.php
    <?php
    
    require 'vendor/autoload.php';
    
    use GuzzleHttp\Client;
    
    $url = 'https://discord.com/api/v10/guilds/{SERVER_ID}/channels';
    $token = 'YOUR_DISCORD_TOKEN';
    
    $client = new Client();
    
    try {
        $response = $client->request('GET', $url, [
            'headers' => [
                'Authorization' => 'Bot ' . $token,
                'Content-Type' => 'application/json'
            ]
        ]);
    
        $data = json_decode($response->getBody(), true);
        // Verarbeite die erhaltenen Daten
        var_dump($data);
    } catch (GuzzleHttp\Exception\RequestException $e) {
        echo 'Fehler beim Abrufen der Daten: ' . $e->getMessage();
    }
    Alles anzeigen

    hmm, ich muss leider zugeben, dass sowas manchmal sehr praktrisch ist. und immerhin verändert es nicht die syntax wie dein laverel

  • Smalltalk - Chatten, Diskutieren....

    • flyingtable07
    • 5. Juli 2023 um 21:45

    Ich hab mich die ganze zeit gefunder warum height: auto;  bei meinem div nicht funktioniert hat und nach 2 stunden suchen herausgefunden, dass das ein bug in css ist. How To Clear Floats (Clearfix) (w3schools.com)

  • OneDrive oder Google Drive

    • flyingtable07
    • 5. Juli 2023 um 21:44
    Zitat von Syntafin

    Natürlich kostet das Geld? Wer geht schon arbeiten ohne Geld zu wollen dafür?

    Spotify kostet kein geld un youtube auch nicht. es gibt nur bei beiden die premium versionen aber die brauch man nicht unbeding.

  • Smalltalk - Chatten, Diskutieren....

    • flyingtable07
    • 5. Juli 2023 um 21:43
    Zitat von Syntafin

    Nein, eventuell kommt aber die Möglichkeit einen eigenen API Key anzugeben. Kommt jetzt erstmal drauf an wie das mit Kleingewerbe abläuft.

    schade. Wie meinst du das mit dem API key?

  • Smalltalk - Chatten, Diskutieren....

    • flyingtable07
    • 5. Juli 2023 um 21:07
    Zitat von Syntafin

    Wenn fertig (ist es fast) und Kleingewerbe angemeldet ist.

    und ich krieg eine kostenlosen account? :smiling_face_with_halo:

  • OneDrive oder Google Drive

    • flyingtable07
    • 5. Juli 2023 um 21:06
    Zitat von Syntafin

    TIDAL :grinning_squinting_face: nichts schlägt die Qualität davon.

    Spotify's "Sehr hoch" ist "Normal" bei TIDAL und das kommende HiFi Upgrade bei Spotify ist "Hoch"

    He, das kostet Geld

    Bilder

    • pasted-from-clipboard.png
      • 620,93 kB
      • 1.920 × 1.080
  • OneDrive oder Google Drive

    • flyingtable07
    • 5. Juli 2023 um 19:32
    Zitat von Syntafin

    YouTube hat mir eine zu schlechte Qualität... wir sollten übrigens damit ins Smalltalk Thema :grinning_face_with_smiling_eyes:

    ich hab leider keine möglicheit gefunden massenhaft songs von spotify runterzuladen. Nur indem ich das lied abspiele und währenddessen das audio aufzeichne, aber das kann man höchstens für einen song machen. und andere quellen für gute lieder kenne ich.

  • Smalltalk - Chatten, Diskutieren....

    • flyingtable07
    • 5. Juli 2023 um 19:30
    Zitat von Syntafin

    Lalalalala :smiling_face_with_halo:

    wow, wann gehts online?

    Zitat

    Nein du schickst ihm den Installer

    hmm ich muss mich wohl nochmal schlauer machen.

    ich würd so gern etwas nützliches progrsammieren wo leute geld für bezahlen

  • OneDrive oder Google Drive

    • flyingtable07
    • 5. Juli 2023 um 18:55

    Es werden aber jeden Tag mehr Songs ^^. Wenn das so weitergeht muss ich mir noch eine 2tb hdd für meinen server kaufen

Rechtliches

Impressum

Datenschutzerklärung