Login
Newsletter
Werbung

Do, 16. April 2015, 15:00

Mobile Blogging-App mit DreamFactory, WordPress und Mailgun, Teil 2

Schritt 6: Die Mailgun-API verstehen

Nachdem Sie Jetzt wissen, wie Sie Ihre Anwendung mit DreamFactory verbinden und einen externen Web-Service integrieren können, werden wir die mobile Blogging-Anwendung jetzt vervollständigen, indem wir sie mit dem zweiten Web-Service, Mailgun, verbinden. Sobald der Blog-Beitrag mit Hilfe des WordPress-Dienstes veröffentlicht wurde, können wir den Mailgun-Dienst verwenden, um eine kurze Nachricht, die die Blog-Post-URL enthält, an eine E-Mail-Adressliste zu senden.

Um eine Nachricht über die Mailgun-API zu senden, ist es notwendig, eine authentifizierte POST-Anforderung an den API-Endpunkt zu senden, die innerhalb des POST-Texts Absender, Empfänger, Betreff und Nachrichtentext enthält. Die Daten sollten als application/x-www-form-urlencoded-Felder gesendet werden und die Mailgun-API gibt eine JSON-Antwort zurück, die anzeigt, ob die Nachricht erfolgreich war oder nicht.

Erstellen einer Mailingliste in Mailgun

Vikram Vaswani

Erstellen einer Mailingliste in Mailgun

Um zu sehen, wie die Mailgun-API funktioniert, melden Sie sich zunächst an Ihrem Mailgun-Konto an und erzeugen über den Menüpunkt Mailing Lists eine neue Mailingliste. Weisen Sie der Mailing-Liste einen Namen zu (in diesem Beispiel mblog-fans) und fügen Sie ein paar Empfänger-E-Mail-Adressen hinzu. Notieren Sie sich den Aliasnamen der Mailingliste, vor allem auch den Namen der zugewiesenen Sandbox-Subdomain, da Sie diese im nächsten Schritt benötigen werden.

Anwendungskonfiguration in Mailgun

Vikram Vaswani

Anwendungskonfiguration in Mailgun

Sobald Sie Ihre Mailingliste eingerichtet haben, starten Sie Ihren REST-Client und senden eine authentifizierte POST-Anforderung an https://api.mailgun.net/v2/sandbox.mailgun.org/messages (denken Sie daran, sandbox.mailgun.org durch die tatsächliche Subdomain aus Ihrem Mailinglisten-Alias zu ersetzen). Fügen Sie die Felder to, from, subject und text zu Ihrer Anfrage als URL-codierte Form-Parameter hinzu und benutzen Sie die HTTP-Basic-Authentifizierung mit dem Benutzernamen api und Ihrem Mailgun-API-Schlüssel als Passwort. Das folgende Bild zeigt die vollständige Anforderungskonfiguration.

Die Mailgun-API wird diese POST-Anforderung akzeptieren und die E-Mail-Nachricht an alle Empfänger Ihrer Mailing-Liste weiterleiten. Wenn Sie Ihre E-Mail-Adresse zur Liste hinzugefügt hatten, dann sollten Sie eine Kopie der Nachricht erhalten. Dies demonstriert, dass die API wie gewünscht funktioniert.

Schritt 7: Den Mailgun-Service zu DreamFactory hinzufügen

Im nächsten Schritt soll die Mailgun-API mit der DSP verbunden werden. Dazu melden Sie sich wieder auf Ihrer DSP an und öffnen die Registerkarte Services. Innerhalb dieser Registerkarte klicken Sie auf die Schaltfläche Create New und fügen dann einen neuen Remote Web Service hinzu. Als API-Namen wählen Sie mailgun und die Basis-URL setzen Sie auf https://api.mailgun.net/v2/sandbox.mailgun.org (denken Sie daran, sandbox.mailgun.org durch Ihren Mailgun-Subdomain-Namen zu ersetzen).

Im Unterabschnitt Headers fügen Sie einen neuen Header mit dem Namen Authorization hinzu, als dessen Wert Sie den HTTP-Basic-Authentifizierungstring einsetzen (denken Sie daran, die gesamte Zeichenfolge von der Postman-Schnittstelle zu kopieren, also das Wort »Basic« und den Schlüssel selbst). Und im Unterabschnitt Service Definition fügen Sie eine Dienstdefinition hinzu, sodass Sie die API mit dem DreamFactory-Client-SDK verwenden können, wie unten dargestellt:

{
  "resourcePath": "/{api_name}",
  "produces": [
    "application/json",
    "application/xml"
  ],
  "consumes": [
    "application/json",
    "application/xml",
    "application/x-www-form-urlencoded"
  ],
  "apis": [
    {
      "path": "/{api_name}/messages",
      "description": "Operations for messages",
      "operations": [
        {
          "method": "POST",
          "summary": "sendMessage() - Send an email message",
          "nickname": "sendMessage",
          "parameters": [
            {
              "name": "from",
              "description": "Message data",
              "allowMultiple": false,
              "type": "string",
              "paramType": "query",
              "required": true
            },
            {
              "name": "to",
              "description": "Message data",
              "allowMultiple": false,
              "type": "string",
              "paramType": "query",
              "required": true
            },
            {
              "name": "subject",
              "description": "Message data",
              "allowMultiple": false,
              "type": "string",
              "paramType": "query",
              "required": true
            },
            {
              "name": "text",
              "description": "Message data",
              "allowMultiple": false,
              "type": "string",
              "paramType": "query",
              "required": true
            }
          ]
        }
      ]
    }
  ],
  "models": {}
}

Speichern Sie Ihre Änderungen, damit der Dienst zur DSP hinzugefügt wird.

Es ist jetzt ganz einfach, Ihre Anwendung so zu aktualisieren, dass die erfolgreiche Veröffentlichung eines Blog-Posts einen Aufruf des Mailgun-Dienstes auslöst und eine E-Mail an Ihre Mailing-Liste sendet, die einem Link auf den neuen Beitrag enthält. Es folgt der überarbeitete Code, der zu $APP_ROOT/app.js hinzugefügt werden soll:

$(document).ready(function() {

  // validate form
  $("#add-post-form").validate({
    submitHandler: function(form) {
      var title = $('#title').val();
      var body = $('#body').val();
      // generate WordPress publication request
      window.df.apis.wordpress.createPost({"body": {"title": title, "content_raw": body, "status":"publish"}},
        function(response) {
          // if publication successful
          // get blog post URL from response
          // generate new request to Mailgun
          window.df.apis.mailgun.sendMessage({"from":'john@example.com', "to": 'mblog-fans@your-sandbox.mailgun.org',"subject":'New post: ' + response.title, "text":'Check out my latest blog post at ' + response.link},
            function(response) {
              $("#status").show();            
              $("#status").html("Blog post published and promoted successfully!");
            },
            function(response) {
              $("#status").show();            
              $("#status").html("There was an error sending email.");
            }
          );
          
        },
        function(response) {
          $("#status").show();            
           $("#status").html("There was an error posting to WordPress.");
        }
      );    
    }
  });

});

Wie Sie obigem Code entnehmen können: Wenn die WordPress-API-Anforderung über die createPost()-Methode erfolgreich war, wird die API-Antwort geparst, der Permalink des Blog-Post wird daraus extrahiert und eine neue Anforderung wird an die Mailgun-API über die sendMessage()-Methode gesendet. Die Methodenparameter sind die Werte für to, from, subject und 'text, wobei der Nachrichtentext einen kurzen Einladungstext und den Permalink enthält. Damit erzeugt jeder neue Blog-Post automatisch eine Benachrichtigung an die vordefinierte Mailingliste.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung