Freigeben über


Verwenden von E-Mail-Vorlagen zum Senden einer E-Mail für die Kontowiederherstellung

In diesem Tutorial erfahren Sie, wie Sie das E-Mail-Vorlagenfeature von PlayFab verwenden, um die Kontakt-E-Mail-Adresse eines Kontowiederherstellungsspielers zu senden, damit ein Spieler sein Kennwort zurücksetzen kann.

Voraussetzungen

Wichtig

Dies ist ein erweitertes Tutorial. Stellen Sie sicher, dass alle Anforderungen erfüllt wurden. Andernfalls können Sie dieses Tutorial nicht abschließen.

  • Um benutzerdefinierte E-Mails mit E-Mail-Vorlagen zu senden, benötigen Sie einen eigenen SMTP-Server mit einem Benutzernamen und Kennwort. Stellen Sie sicher, dass Sie über einen eigenen SMTP-Server verfügen, bevor Sie unser Tutorial Einrichten eines SMTP-Servers mit Add-Ons verwenden.

Notiz

Sie können Gmail zum Testen verwenden, aber Gmail beschränkt Sie auf 2.000 E-Mails pro Tag.

  • Grundkenntnisse in der Erstellung eines Spielers sind erforderlich, da spieler mit Benutzernamen und Kennwörtern vorhanden sein müssen, bevor die Kontowiederherstellungslogik aufgerufen wird.
  • Lesen Sie den Game Manager-Schnellstart , wenn Sie mit dem Game Manager nicht vertraut sind, da es der Ort ist, an dem E-Mail-Vorlagen erstellt werden.
  • Kenntnisse über die Arbeit mit Spielerprofilen sind erforderlich, um zu bestätigen, dass E-Mails erforderlich sind, um zu überprüfen, ob dem Profil eines Spielers eine Kontakt-E-Mail hinzugefügt wurde. Lesen Sie im Tutorial Abrufen von Spielerprofilen , wie Sie ein Spielerprofil abrufen, und stellen Sie sicher, dass Sie unter den Clientprofiloptionen in Ihrem TitelKontakt-E-Mail-Adressen zulassen.

Schritt 1: Erstellen einer E-Mail-Vorlage

Als Erstes erstellen wir eine E-Mail-Vorlage für die Kontowiederherstellung.

  • Wechseln Sie zu Inhalt.
  • Wählen Sie die Registerkarte Email Vorlagen aus.
  • Wählen Sie die Schaltfläche NEUE E-MAIL-VORLAGE aus.

Game Manager – Inhalt – Email Vorlagen

Fügen Sie nun eine Neue Email-Vorlage hinzu, und füllen Sie die Felder wie folgt aus, und lassen Sie die Url des Fehlerrückrufs leer:

  • Vorlagenname: PasswordRecoveryTemplate
  • Vorlagentyp: Kontowiederherstellung
  • Email Betreff: Kennwortzurücksetzung angefordert
  • Email Text: (geben Sie wie unten angegeben ein)
<head></head>
<body><p> You recently requested a password reset with us.</p>
<p>Please click <a href='$ConfirmationUrl$'>here</a> to be directed to a page to reset your password. Thanks!</p>
  • Aus Name: Der Name, den Sie im Feld Von in der E-Mail anzeigen möchten.
  • Von Email Adresse: Die E-Mail-Adresse, die in der E-Mail im Feld Von angezeigt werden soll. Dies muss eine E-Mail-Domäne sein, über die der SMTP-Server E-Mails senden kann.

Notiz

Einige E-Mail-Server wie Gmail ignorieren dieses Feld und senden über das Konto, das mit dem SMTP-Server eingerichtet wurde.

  • Rückruf-URL: Eine Rückruf-URL für ein Kennwortwiederherstellungsformular. Das Formular muss mindestens ein Kennwortfeld enthalten, damit der Spieler ein neues Kennwort eingeben kann.

Einige Punkte, die Sie beachten sollten

  • Der $ConfirmationUrl$ im E-Mail-Text generiert eine angepasste URL, die bei Auswahl nachverfolgt, dass ein Benutzer die URL ausgewählt hat, und gibt dann eine Umleitung zur Rückruf-URL aus. In diesem Fall wird es in ein Ankertag eingefügt.
  • Die Rückruf-URL ist die URL, an die PlayFab umleitet, nachdem der Spieler den Bestätigungs-URL-Link ausgewählt hat. Es muss ein gehostetes Webformular sein, das mindestens ein Kennwortfeld enthält, um später in diesem Tutorial einen ResetPassword-API-Aufruf ausführen zu können.

Game Manager – Inhalt – Email-Vorlagen – Neue Email-Vorlage

Nachdem Sie das Formular ausgefüllt haben, wählen Sie die Schaltfläche E-Mail-Vorlage speichern aus, und Sie werden zurück zu der Seite weitergeleitet, die die Liste Der angezeigten Email Vorlagen enthält. Notieren Sie sich die ID der Email-Vorlage, wie sie in Schritt 4 verwendet wird.

Game Manager – Inhalt – Email Vorlagen-ID

Schritt 2: Hinzufügen von Benutzername, Kennwort, Anmelde-E-Mail und Kontakt-E-Mail zu einem Spieler

Für diesen nächsten Schritt benötigen Sie ein vorhandenes Spielerkonto.

Wir fügen einen Benutzernamen, ein Kennwort und eine Anmelde-E-Mail mithilfe von AddUsernamePassword hinzu. Darüber hinaus fügen wir dem Spieler mithilfe von AddOrUpdateContactEmail eine Kontakt-E-Mail hinzu.

Notiz

Ein Kontakt-E-Mail-Feld in einem Spielerprofil unterscheidet sich vom Feld "Anmelde-E-Mail" in einem Spielerprofil, obwohl beide möglicherweise dieselbe E-Mail-Adresse enthalten. Jedes Mal, wenn Sie eine E-Mail an den Spieler senden, wird diese an die E-Mail-Adresse des Kontakts gesendet.

C#-Codebeispiel

Im folgenden Beispiel melden wir uns bei einem Player an und fügen dann einen Benutzernamen, ein Kennwort und eine Anmelde-E-Mail mithilfe von AddUsernamePassword hinzu. Anschließend fügen wir mithilfe von AddOrUpdateContactEmail eine Kontakt-E-Mail-Adresse hinzu. Stellen Sie sicher, dass es sich bei der dem Spieler zugeordneten E-Mail-Adresse um eine E-Mail-Adresse handelt, auf die Sie zugreifen können.

void CreatePlayer()
{
    var loginReq = new LoginWithCustomIDRequest
    {
        CustomId = "SomeCustomID", // replace with your own Custom ID
        CreateAccount = true // otherwise this will create an account with that ID
    };

    var username = "yourusername"; // Set this to your username
    var password = "yourpassword"; // Set this to your password
    var emailAddress = "testaddress@example.com"; // Set this to your own email

    PlayFabClientAPI.LoginWithCustomID(loginReq, loginRes =>
    {
        Debug.Log("Successfully logged in player with PlayFabId: " + loginRes.PlayFabId);
        AddUserNamePassword(username, password, emailAddress); // Add a username and password
        AddOrUpdateContactEmail(loginRes.PlayFabId, emailAddress);
    }, FailureCallback);
}

void AddUserNamePassword()
{
    var request = new AddUsernamePasswordRequest
    {
        Username = "yourusername",
        Password = "yourpassword",
        Email = "exampleemail@emaple.com" // Login email
    };
    PlayFabClientAPI.AddUsernamePassword(request, result =>
    {
        Debug.Log("The player's account now has username and password");
    }, FailureCallback);
}

void AddOrUpdateContactEmail(string playFabId, string emailAddress)
{
    var request = new AddOrUpdateContactEmailRequest
    {
        PlayFabId = playFabId,
        EmailAddress = emailAddress
    };
    PlayFabClientAPI.AddOrUpdateContactEmail(request, result =>
    {
        Debug.Log("The player's account has been updated with a contact email");
    }, FailureCallback);
}

void FailureCallback(PlayFabError error)
{
    Debug.LogWarning("Something went wrong with your API call. Here's some debug information:");
    Debug.LogError(error.GenerateErrorReport());
}

Schritt 3: Bestätigen, dass die Kontakt-E-Mail dem Profil des Spielers hinzugefügt wurde

Bestätigen Sie als Nächstes, dass die Kontakt-E-Mail dem Profil des Spielers hinzugefügt wurde. Melden Sie sich beim Game Manager an, und besuchen Sie die Seite Spielerprofil . Es sollte eine Kontakt-E-Mail für diesen Spieler angezeigt werden.

Game Manager – Spielerprofil – Kontakt-E-Mail

Sie können getPlayerProfile auch mit ShowContactEmailAddresses in der auf true festgelegten PlayerProfileViewConstraints aufrufen, um anzuzeigen, dass der Spieler jetzt über die Kontakt-E-Mail verfügt, die wir gerade hinzugefügt haben.

Schritt 4: Senden einer E-Mail mit einer Vorlage für die Kontowiederherstellung

Nun senden wir die Überprüfungs-E-Mail mithilfe von SendEmailFromTemplate mithilfe der E-Mail-Vorlagen-ID in Schritt 1 an den Player, den wir in Schritt 2 erstellt haben.

C#-Codebeispiel

Im folgenden Beispiel senden wir eine E-Mail zur Kontowiederherstellung mithilfe von SendCustomAccountRecoveryEmail.

void SendCustomAccountRecoveryEmail(string emailAddress, string emailTemplateId)
{
    var request = new SendCustomAccountRecoveryEmailRequest
    {
        Email = emailAddress,
        EmailTemplateId = emailTemplateId
    };

    PlayFabServerAPI.SendCustomAccountRecoveryEmail(request, res =>
    {
        Debug.Log("An account recovery email has been sent to the player's email address.");
    }, FailureCallback);
}

void FailureCallback(PlayFabError error)
{
    Debug.LogWarning("Something went wrong with your API call. Here's some debug information:");
    Debug.LogError(error.GenerateErrorReport());
}

Schritt 5 : Überprüfen, ob die E-Mail gesendet wurde

Schließlich können wir überprüfen, ob die E-Mail zur Kontowiederherstellung gesendet wurde.

Als Erstes können Sie zum PlayStream-Bereich des Spielers wechseln. In Game Manager:

  • Wählen Sie im Menü auf der linken Seite Player aus.
  • Wechseln Sie zum PlayStream-Bereich des Bildschirms.
  • Es sollte ein Gesendetes Email-Ereignis angezeigt werden.

Game Manager – Spieler – PlayStream – Gesendetes E-Mail-Ereignis

Wenn Sie das Symbol "Info " für das Ereignis auswählen, sollte json ähnlich wie unten angezeigt angezeigt werden.

{
    "EventName": "sent_email",
    "EventNamespace": "com.playfab",
    "Source": "PlayFab",
    "EntityType": "player",
    "TitleId": "YourTitleId",
    "EventId": "655f14ac45b341b59c217dcf04d26ef9",
    "EntityId": "64647AA368D6448E",
    "SourceType": "BackEnd",
    "Timestamp": "2017-10-27T23:53:58.8717009Z",
    "History": null,
    "CustomTags": null,
    "Reserved": null,
    "emailTemplateId": "DC3E1B28881C6071",
    "emailTemplateName": "PasswordRecoveryTemplate",
    "emailTemplateType": "AccountRecovery",
    "success": true,
    "emailName": "Primary"
}

Um zu überprüfen, ob Sie die E-Mail tatsächlich erhalten, wechseln Sie zu der E-Mail des Spielers, den Sie in Schritt 2 erstellt haben. Es sollte eine E-Mail geben, die in etwa wie unten dargestellt aussieht.

Kennwortzurücksetzung angefordert – E-Mail

Wenn Sie die URL in dieser E-Mail überprüfen, sehen Sie, dass sie in etwa wie in diesem Beispiel aussieht.

https://a5f3.playfabapi.com/EmailConfirmation/Confirm/?token=2346241B7C277796&titleId=A5F3&templateId=38017AAE7F494AB3

Wenn der Spieler diese URL auswählt, geschieht folgendes:

  1. PlayFab generiert ein neues PlayStream-Ereignis namens auth_token_validated. So wissen Sie, dass der Spieler diese URL in der E-Mail ausgewählt hat. Sie können dieses Ereignis verwenden, um Aktionen wie das Gewähren von Münzen oder Gegenständen an den Spieler auszulösen.
  2. PlayFab gibt eine Umleitungs-URL zurück und sendet den Spieler an die Rückruf-URL. In diesem Fall sollte es sich um eine Website für das Spiel mit einem Formular handeln, auf dem der Spieler ein neues Kennwort eingeben kann.
  3. Die Umleitungs-URL enthält ein Token in der Abfragezeichenfolge und sieht in etwa wie unten angezeigt aus.

https://www.example.com/?token=2346241B7C277796.

Schritt 6 : Zurücksetzen des Spielerkennworts

Nachdem der Spieler zur Rückruf-URL weitergeleitet wurde und das Formular mit einem neuen Kennwort ausfüllt, können Sie diese Informationen zusätzlich zum Token in der Abfragezeichenfolge verwenden, um einen ResetPassword-Aufruf auszugeben.

C#-Codebeispiel

Im folgenden Beispiel setzen wir das Kennwort eines Spielers zurück, basierend auf einem Token und dem neuen Kennwort, das der Spieler in einem Formular mit ResetPassword angibt.

void ResetPassword(string newPassword, string token)
{
    var request = new ResetPasswordRequest
    {
        Password = newPassword,
        Token = token
    };

    PlayFabAdminAPI.ResetPassword(request, result =>
    {
        Debug.Log("The player's password has been resetl");
    }, FailureCallback);

}

void FailureCallback(PlayFabError error)
{
    Debug.LogWarning("Something went wrong with your API call. Here's some debug information:");
    Debug.LogError(error.GenerateErrorReport());
}

Schritt 7: Überprüfen, ob das Kennwort zurückgesetzt wurde

Vergewissern Sie sich abschließend, dass der Spieler sein Kennwort erfolgreich zurückgesetzt hat, indem Sie sich mit LoginWithPlayFab anmelden.

C#-Codebeispiel

Im folgenden C#- Beispiel melden wir uns mit LoginWithPlayFab und dem neuen Kennwort an, auf das der Spieler in Schritt 6 zurückgesetzt wurde.

void LoginWithPlayFab(string username, string password)
{
    var request = new LoginWithPlayFabRequest
    {
        Username = username,
        Password = password
    };

    PlayFabClientAPI.LoginWithPlayFab(request, result =>
    {
        Debug.Log("Successfully logged in player with ID " + result.PlayFabId);
    }, FailureCallback);
}

void FailureCallback(PlayFabError error)
{
    Debug.LogWarning("Something went wrong with your API call. Here's some debug information:");
    Debug.LogError(error.GenerateErrorReport());
}

Abschluss

Das war's für dieses Tutorial! Sie haben erfahren, wie Sie Ihren SMTP-Server einrichten, eine E-Mail-Vorlage erstellen, eine E-Mail-E-Mail für die Kontowiederherstellung senden und das Kennwort eines Spielers zurücksetzen.

Wenn Sie Fragen oder Feedback zu diesem Tutorial haben, teilen Sie uns dies bitte in unseren Communityforen mit.