Warum funktioniert das nicht?

Hi, auf einer Website soll es die Möglichkeit geben, sich per Discord anzumelden. Dafür habe ich auch schon eine Anleitung unter: https://discordjs.guide/oauth2/#a-quick-example gefunden. Leider ist die Anleitung dort ziemlich knapp gehalten und für mich auch etwas über dem was ich zum jetzigen Zeitpunkt kann. Leider ist mein Code zu lang um ihn hier hochzuladen, daher mache ich das über jsfiddle:

https://jsfiddle.net/Atrapfare/4bvt0fwd/

in die css section habe ich einfach die datei config.json gepackt :)

In meinen Website Einstellungen kann ich unter NodeJS die "Startdatei" auswählen. Dabei habe ich mal index.js ausgewählt. weiß net ob das richtig war :).

Ihr seht, bei dem Thema bin ich echt noch Einsteiger, von daher :D

So, jetzt mein Problem: Wenn ich den Link drücke um mich mit Discord anzumelden, werde ich auch an Discord weitergeleitet. Wenn ich dann auf autorisieren drücke, werde ich auch wieder auf die Seite weitergeleitet, welche ich bei der Discord Application als Redirect angegeben habe. Nur lädt die Seite dann halt einfach und nach kurzer Zeit kommt: Die Verbindung wurde abgelehnt. Komisch ist halt, dass ich mir das Repo von Discord selber zum Thema OAuth2 angeschaut und als Vorlage verwendet habe. Ich habe eigentlich nur die Daten geändert wie die client id und den secret code... und den link für die weiterleitung zu discord. warum also funktioniert das ganze nicht? was mach ich falsch?

Hier noch die Einstellungen in meiner Application:

Und noch eine Frage am Rande:

wie ist es nun möglich, Daten des Nutzers anzeigen zu lassen, also den Namen oder die Email adresse?

Vielen Dank für jede Antwort!

...zum Beitrag

Moin,

ich schätze mal du hast den Redirect so wie in der Anleitung eingerichtet. Dieser verweist also auf Port 53134 deines Servers. Der Redirect setzt allerdings auch voraus, dass du dort irgendetwas hostest, was bei dir wahrscheinlich nicht der Fall ist. Außerdem ist die .json Datei kein CSS-Code. Das solltest du auch noch einmal ändern. Auf die Daten kannst du dann in der JS-Funktion zugreifen. Das JSON-Objekt response beinhaltet die Informationen.

...zur Antwort

Moin,

lass dich nicht davon abschrecken, dass es nach viel Stoff aussieht, den du aufholen musst. Fang klein an und mache immer regelmäßig ein bisschen was. Versuche auch dich wirklich dafür zu interessieren, damit es nicht zur Qual wird. Außerdem lernt nicht jeder Mensch gleich und vielleicht ist der Frontalunterricht nichts für dich. Probiere es doch einfach mal mit einem Buch, schaue dir Videos an oder nehme, wie bereits erwähnt wurde, Nachhilfe. Dann aber bei jemanden, der dich auch wirklich weiter bringt.

...zur Antwort

Freut mich zu hören, dass es hilfreich war! Also an sich drückt die Formel genau das aus was wir hier in Worten ausgeführt haben. Hier aber noch mal wie du die Formel anwendest:

Bild zum Beitrag

...zur Antwort

Moin,

ich versuche mal es etwas genauer auszuführen. Es geht hier um bedingte Wahrscheinlichkeiten. Es wird also nicht nur das Ereignis E1 betrachtet sondern das Ereignis E2 wird als zuvor eingetreten angenommen. Zunächst betrachtet man also den Ergebnisraum beider Ereignisse. Für E1 haben wir alle gerade Zahlen kleiner 45, also Ω1 = {2,4,6,8,...,44}. Der Ergebnisraum umfasst 22 Zahlen und somit ist die Wahrscheinlichkeit von E1 22/45, wenn es unabhängig von E2 betrachtet wird. Nehmen wir als Beispiel E2 = {"Es kommt eine Quadratzahl"}, dann haben wir Ω2 = {1,4,9,16,25,36}. Die für E1 günstigen Fälle, also die geraden Zahlen im Ergebnisraum von E2, sind also {4,16,36}, was einer Chance von 3/6 entspricht, weil 3 Ergebnisse für E1 günstig sind und es insgesamt nur noch 6 Möglichkeiten und nicht mehr wie zuvor 45 gibt. Jetzt bleibt nur noch zu vergleichen, welche Wahrscheinlichkeit höher ist und ob die Aussage dann korrekt ist oder nicht.

Um es mit einer einfachen Formel auszudrücken kann man Ereignis A gegeben Ereignis B wie folgt berechnen:

Bild zum Beitrag

Darin ist

Bild zum Beitrag

 die Wahrscheinlichkeit, dass A  und B  gemeinsam auftreten.

...zur Antwort

Moin,

die Multiplikation zweier Zahlen m und n kann auch als Summe geschrieben werden, was in den gegebenen Termen der Fall ist.

Bild zum Beitrag

n und m sind in einer solchen Multiplikation die Faktoren. Ihr müsst also ein Multiplikation finden die equivalent zu der als Term gegebenen Summe ist.

Beispiel:

2a + 2b = 2 * (a+b)

...zur Antwort
WPF & C#: Erweiterte Stoppuhr erstellen - Fehlermeldungen?

Hallo zusammen,

ich codiere gerade im Visual Studio 2019 in WPF mit der Computersprache C# eine Stoppuhr. Diese soll in einer 24-Stunden-Anzeige dargestellt werden, wo ich auch die Uhr stoppen und wieder laufen lassen kann. Das klappt alles.

Bis ich auf dieses Problem gestoßen bin:

Ich soll noch Zwischenzeiten der gelaufenen Zeit darstellen, die rechts in einer ListBox erscheinen sollen. Daneben noch ein Button namens "Zurücksetzen", der die gesamt gelaufene Zeit auf 0 zurücksetzt.

So sollte das Ergebnis aussehen:

swoutput.png (434×296) (sourcecodester.com)

(in dem Fall -> Mark = Zwischenzeit)

Bei mir stellt er es aber nicht so dar.

Dies ist hier mein Quelltext in Visual Studio 2019:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;

namespace Wpf_Stoppuhr
{
  /// <summary>
  /// Interaktionslogik für MainWindow.xaml
  /// </summary>
  public partial class MainWindow : Window
  {
    DispatcherTimer timer = new DispatcherTimer();

    private int zs = 0, sek = 0, min = 0, h = 0;

    private bool pruef = true;

    public MainWindow()
    {
      InitializeComponent();
      timer.Tick += new EventHandler(timer_Tick);
      timer.Interval = new TimeSpan(0, 0, 0, 0, 10);
      L_Ausgabe.Content = "0 : 0 : 0 : 0";
    }

    private void timer_Tick(object sender, EventArgs e)
    {
      zs++;

      if (zs == 10)
      {
        sek++;
        zs = 0;
      }
      else if (sek == 60)
      {
        sek = 0;
        min++;
      }
      else if (min == 60)
      {
        min = 0;
        h++;
      }
      else if (h == 24)
      {
        h = 0;
      }

      L_Ausgabe.Content = h + " : " + min + " : " + sek + " : " + zs;
    }

    private void B_Start_Click(object sender, EventArgs e)
    {
      if (pruef)
      {
        timer.Start();
        B_Start.Content = "Start";
        pruef = false;
      }
      else
      {
        timer.Stop();
        B_Start.Content = "Stopp";
        pruef = true;
      }
    }

    private void B_zwz_Click_1(Object sender, EventArgs e)
    {
      ListBox1.Items.Add(L_Ausgabe.Content);
    }

    private void B_zurueck_Click(Object sender, EventArgs e)
    {
      L_Ausgabe.Content = " 0: 0 :0 : 0 ";
      ListBox1.Items.Clear();
      timer.Stop();
    }
  }
}
  • B_Start = Start Knopf
  • ListBox1 = die Listbox
  • L_Ausgabe = Label für die Zeit
  • B_zurueck = Button fürs zurücksetzen
  • B_zwz = Button für die Zwischenzeit

Ich wäre sehr dankbar für eine Lösung. :)

Mit freundlichen Grüßen

Cynix

...zum Beitrag

Moin,

das wäre mein Vorschlag:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Navigation;

using System.Windows.Shapes;

namespace WpfApp1

{

  /// <summary>

  /// Interaction logic for MainWindow.xaml

  /// </summary>

  public partial class MainWindow : Window

  {

    public MainWindow()

    {

      InitializeComponent();

      aTimer = new System.Timers.Timer();

      aTimer.Interval = 1;

      aTimer.Elapsed += OnTimedEvent;

      aTimer.AutoReset = true;

       

    }

    private System.Timers.Timer aTimer;

    private int zs = 0, sek = 0, min = 0, h = 0;

    private bool pruef = true;

    private void B_zwz_Click(object sender, RoutedEventArgs e)

    {

      ListBox1.Items.Add(L_Ausgabe.Content);

    }

    private void B_zurueck_Click(object sender, RoutedEventArgs e)

    {

      aTimer.Stop();

      B_Start.Content = "Start";

      L_Ausgabe.Content = " 0: 0 :0 : 0 ";

      ListBox1.Items.Clear();

    }

    private void button_Click(object sender, RoutedEventArgs e)

    {

      if (pruef)

      {

        aTimer.Enabled = true;

        aTimer.Start();

        B_Start.Content = "Stop";

        pruef = false;

      }

      else

      {

        aTimer.Stop();

        B_Start.Content = "Start";

        pruef = true;

      }

    }

    private void changeLabel() {

      L_Ausgabe.Content = h + " : " + min + " : " + sek + " : " + zs;

    }

    private void OnTimedEvent(Object source, System.Timers.ElapsedEventArgs e)

    {

      try

      {

        zs++;

        if (zs == 10)

        {

          sek++;

          zs = 0;

        }

        else if (sek == 60)

        {

          sek = 0;

          min++;

        }

        else if (min == 60)

        {

          min = 0;

          h++;

        }

        else if (h == 24)

        {

          h = 0;

        }

        this.L_Ausgabe.Dispatcher.Invoke(changeLabel);

      }

      catch

      {

        return;

      }

    }

  }

}

--------------------------------------------------------------------------------------------------------

<Window x:Class="WpfApp1.MainWindow"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

    xmlns:local="clr-namespace:WpfApp1"

    mc:Ignorable="d"

    Title="MainWindow" Height="450" Width="800">

  <Grid>

    <Label x:Name="L_Ausgabe" Content="&quot;0 : 0 : 0 : 0&quot;" HorizontalAlignment="Left" Margin="147,145,0,0" VerticalAlignment="Top" RenderTransformOrigin="-4.065,0.891" Width="89"/>

    <Button x:Name="B_Start" Content="Start" HorizontalAlignment="Left" Margin="93,0,0,0" VerticalAlignment="Center" Height="35" Width="180" Click="button_Click"/>

    <Button x:Name="B_zwz" Content="Mark" HorizontalAlignment="Left" Margin="93,267,0,0" VerticalAlignment="Top" Height="35" Width="73" Click="B_zwz_Click"/>

    <Button x:Name="B_zurueck" Content="Reset" HorizontalAlignment="Left" Margin="200,267,0,0" VerticalAlignment="Top" Height="35" Width="73" Click="B_zurueck_Click"/>

    <ListBox x:Name="ListBox1" Margin="400,108,146,108"/>

  </Grid>

</Window>

...zur Antwort

Moin,

du musst den Gültigkeitsbereich deiner Variable beachten. Du deklarierst und definierst den String erg in der Methode istgleich_Click nur unter Berücksichtigung der Bedingung in Zeile 199. Das bedeutet, dass auf diese Zeichenkette auch nur innerhalb dieser bedingten Abzweigung zugegriffen werden kann. Ereignet sich der entsprechende Click und triggert die Methode aber das Rechnungszeichen ist ungleich '+', wird der String weder erzeugt noch gibt die Methode etwas zurück. Da allerdings vereinbart wurde, dass sie einen Wert vom Typ string zurückgibt, stellt dies ein Problem dar. Die Methode methode() wird nie auf die Variable zugreifen können. Um dein Problem zu lösen, bietet es sich an, eine globale Variable zu definieren. In etwa so:

Bild zum Beitrag

...zur Antwort

Hey,

ob das die Fehlermeldung verursacht, weiß ich nicht genau - schließlich ist die Fehlermeldung nicht sonderlich ergiebig - aber hast du eventuell mehrere Python-Versionen installiert? Abhängig vom Kontext installiert pip das Package für Python 2 oder Python 3 (mehrere Installationen der gleichen Version an verschiedenen Orten sind auch möglich). Das wäre meine Vermutung, warum du regelmäßig Packages nicht importieren kannst. Da du in diesem Fall Python 3 verwenden willst, könnte dir pip3 statt pip schon weiter helfen.

...zur Antwort