Ausgabe von Deutschen Tagesbezeichnungen eines DateTime Objektes

Die einfachste Möglichkeit um in C# aus einem DateTime Objekt den Deutschen Tagesnamen zu erhalten ist die Benutzung des Formats „dddd“ in Kombination mit der CultureInfo „de-DE“. Als Beispieldatum nehmen wir den 01.01.2020, welcher ein Mittwoch ist.

Der Code zur Ermittlung der Wochentagsbezeichnung sähe dann wie folgt aus:


var tagesName = new DateTime(2020, 1, 1).ToString("dddd", CultureInfo.CreateSpecificCulture("de-DE")); //liefert den string "Mittwoch"

Ein klarer Vorteil dieser Methode gegenüber beispielsweise einer Ermittlung per Unix Timestamp ist, dass man sich keine Sorgen um die Zeitzonen machen muss.

Weitere Infos zur Konvertierung von Datumsformaten in C# findet ihr unter: https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings

Wie erstelle ich einen langlebigen Seiten Access Token für die Facebook Graph API

Für eine Anwendung benötigte ich einen Access Token, welcher per Graph API Daten von Facebook ermitteln konnte. Zunächst erstellte ich mir einen Zugriffsschlüssel für eine App. Hierzu rief ich den Endpunkt „oauth/access_token“ der API mit den entsprechenden Credentials auf.

Im Umgang mit diesem AccessToken zeigte sich leider, dass dieser nicht alle Seiten von Facebook erreichen konnte, sprich Veranstaltungen Ü18 oder mit Alkoholbezug wurden mir mit diesem Token verwehrt. Nach ein bisschen Recherche las ich, dass ein Page Access Token für meine Zwecke besser geeignet sei. Doch wie bekommt man einen solchen, welcher auch noch langlebig ist?

Die Lösung ist wie folgt: Zunächst müsst ihr euren Facebook User der Seite zuordnen und ihn mit manage_pages authorisieren. Hierzu gebt ihr im Browser die Url „https://www.facebook.com/dialog/oauth?client=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=manage_pages“ ein. Es öffnet sich ein Fenster von Facebook zur Rechtevergabe. Dort einfach die Seite mit allem authorisieren. Nun geht man in den Facebook Graph API Explorer. Diesen erreicht man unter der Url https://developers.facebook.com/tools/explorer/.

Dort gibt man in das Texteingabefeld unter dem Zugriffsschlüssel „me/accounts/“ ein. Nun werden einen in der Ausgabe alle Seiten aufgelistet zu denen man einen Bezug hat. Dort sucht ihr die entsprechende Seite aus und kopiert euch den AccessToken und fügt ihn in das obere Texteingabefeld Zugriffsschlüssel ein.

Nun klickt man links in dem Textfeld, wo der Zugriffsschlüssel angezeigt wird, auf das „i“ im blauen Punkt. Es öffnet sich ein Fenster mit Informationen zum Zugriffsschlüssel. In der dort angezeigten Tabelle seht ihr unter Ablaufzeit, dass euer Schlüssel einen Ablaufzeitpunkt hat. Er ist also noch nicht langlebig. Unten rechts in dem Fenster findet sich ein Button „Im Zugriffsschlüssel-Tool öffnen“. Diesen klickt man und es öffnet sich eine neue Seite.

Dort sieht man erneut Informationen zum AccessToken und unten rechts gibt es einen Button „Zugriffsschlüssel verlängern“. Diesen klickt man und nun hat man einen AccessToken, welcher erst abläuft, sobald der User, für welchen man der Seite Rechte erteilt hat, sein Passwort ändert oder seinen Account löscht.

Nachträgliches Ändern eines in einer WebApp erstellten WebJobs in Azure

Ich hatte vor kurzem das Szenario, dass ich einen WebJob über eine Azure WebApp angelegt habe und im Nachhinein den Zeitplan des Jobs ändern wollte. Es war ein ausgelöster WebJob für den ich den CRON-Ausdruck „0 6 * * * *“ als Trigger definiert hatte. Nun lief der WebJob allerdings jede Stunde zur Minute sechs. Allerdings wollte ich, dass der Job jeden Morgen in der Frühe um 06:00 Uhr laufen sollte. Für diese Vorgabe hätte ich den CRON-Ausdruck „0 0 6 * * *“ benötigt. Nun suchte ich nach einer Möglichkeit den von mir erstellten Trigger im Nachhinein zu bearbeiten. Leider gibt es hierfür in der WebJobs Ansicht in der WebApp keine Möglichkeit.

Man muss es etwas komplizierter angehen. In der AppService Ansicht wählt man aus der Navigation am linken Rand den Eintrag „Erweiterte Tools“. In der sich öffnenden Ansicht klickt man auf „Gehe zu“. Auch zu erreichen über den Link https://{WebServiceName}.scm.azurewebsites.net .

Nun öffnet sich ein neuer Browsertab zu Kudu. Dort wählt man aus der oberen Navigation „Debug Console“ und dort „CMD“. Es öffnet sich eine Art Dateibrowser. Dort finden wir eine Datei namens „settings.job“ unter site/wwwroot/App_Data/jobs/triggered/{NameWebJob}/.

In der Datei „settings.job“ findet sich nun die CRON Angabe, welche man manuell ändern und speichern kann. Hierfür klickt man einfach auf den Stift links neben dem Dateinamen. Es öffnet sich eine Art Texteditor in dem man nun den Eintrag editieren und speichern kann. Im Anschluss habe ich den App Service noch neu gestartet.

Wer noch weitere Informationen zu den CRON Asudrücken benötigt findet diese unter https://docs.microsoft.com/de-de/azure/app-service/web-sites-create-web-jobs#cron-expressions. Auf der Seite finden sich auch weitere Informationen zum allgemeinen Erstellen eines WebJobs.