Introductie
Je kunt Microsoft Power Automate gebruiken om informatie te posten naar de Hub in Workspace 365. In dit artikel laten we je zien hoe je een Power Automate-flow kunt gebruiken om mededelingen te genereren van nieuwsberichten in een SharePoint-nieuwsfeed. Bekijk het Announcement API-endpoint voor meer informatie.
Power Automate heeft alleen toegang tot de verkorte versie van de inhoud van het nieuwsbericht. Dit wordt de "Beschrijving" genoemd en bevat de eerste 250 tekens zonder enige vorm van opmaak. We kunnen echter een link naar het volledige nieuwsbericht toevoegen.
Vereisten
Een account met toegang tot de SharePoint-site.
Een Power Automate Premium-licentie (tip: Microsoft biedt een gratis proeflicentie van 90 dagen aan).
Een ingeschakelde API-sleutel voor de Announcements API. Je kunt meerdere Announcement API-sleutels ingeschakeld hebben, dus aarzel niet om voor elke informatiebron een sleutel te genereren. Dit draagt bij aan zowel de veiligheid als het beheer.
Als je een nieuwe mededeling wilt maken binnen een specifieke mededelingencategorie, zorg er dan voor dat je de categorie in Workspace hebt aangemaakt voordat je je API-flow maakt. Dit komt omdat je geen nieuwe mededelingscategorieën kunt maken vanuit je API-flow. Standaard worden nieuwe mededelingen toegevoegd aan de categorie 'uncategorized'.
Configuratie
Stap 1. Maak de Power Automate-flow
Log in op Microsoft 365 en klik op de wafelknop in de linkerbovenhoek.
Open de app Power Automate.
Kies "Create" om een nieuwe flow te maken.
Kies "Automated cloud flow".
Geef een naam aan je flow. Zoek naar “created or modified properties” als SharePoint-trigger om je flow mee te starten en klik op "Create".
Selecteer de relevante site uit de Site Address dropdown.
Voer de bibliotheeknaam in. Als de bibliotheek Site Pages niet in het dropdown Veld verschijnt, moet je een aangepaste waarde invoeren en de GUID van de bibliotheek Site Pages gebruiken. Je kunt deze waarde vinden door naar de Site-inhoud te gaan en de instellingen van de bibliotheek Site Pages te openen.
De GUID wordt nu weergegeven in de URL:
Kopieer deze waarde uit de URL en plak deze in de bibliotheeknaam:
Stap 2. Voeg een voorwaarde toe
Om nieuwsberichten te filteren die zijn gepubliceerd, kun je het metadata-veld "Promoted State" gebruiken. Dit veld heeft drie mogelijke waarden:
0 = Sitepagina
1 = Nieuwsbericht in concept
2 = Nieuwsbericht gepubliceerd
Om een voorwaarde toe te voegen:
3. Voeg het Promoted State-veld toe.
Opmerking: als je een bestaande bibliotheek uit de keuzelijst kiest, wordt de "Promoted State"-voorwaarde niet weergegeven. Om een "Promoted State"-voorwaarde te kunnen kiezen, moet je een aangepaste GUID hebben ingevuld onder Bibliotheeknaam.
4. We willen alleen gepubliceerde nieuwsberichten, dus we stellen de voorwaarde in op "is gelijk aan" 2.
Stap 3. Posten naar de Announcements API
In het "If yes"-veld, voeg een actie toe en zoek naar HTTP (premium). Als je geen Power Automate Premium-licentie hebt, wordt je een proeflicentie van 90 dagen aangeboden.
Kies als Methode voor POST.
De URI is de eindpunt-URL voor de Announcements API van je Workspace 365-omgeving, bijvoorbeeld:
https://workspace365instance.url/environmentname/api/announcements.
Vul de Authorization-header in: "Workspace365" gevolgd door de API-sleutel voor de Announcements API.
Een voorbeeld van de body:
Of in code:{
"Title": "@{triggerOutputs()?['body/Title']}",
"Description": "@{triggerOutputs()?['body/Description']} <br><br><a href=@{triggerOutputs()?['body/{Link}']}>Read more on Sharepoint</a>"
}Sla je flow op.
Test het door een SharePoint-nieuwsbericht aan te maken en te plaatsen met de knop "Post news" in de rechterbovenhoek (controleer dubbel of je een bericht aanmaakt op dezelfde SharePoint-site die in de gemaakte API-flow wordt gebruikt).
Als je flow succesvol is, zou je de mededeling nu in Workspace 365 moeten zien!In je API-flow kun je specificeren onder welke categorie de mededeling zal worden geplaatst. De categorie moet echter al bestaan in Workspace (je kunt geen nieuwe mededelingsscategorie aanmaken vanuit je API-flow). Standaard worden nieuwe mededelingen toegevoegd aan de categorie 'Uncategorized'.
Achtergrondinformatie over de JSON-body
De body van de HTTP-actie is waar we de mededeling verstrekken, maar deze moet worden geformatteerd als een JSON-object. JSON staat voor JavaScript Object Notation en volgt een paar eenvoudige syntaxisregels:
Accolades bevatten objecten
Gegevens zijn in naam/waarde-paren
Gegevens worden gescheiden door komma's
Of je nu de Workspace 365 Hub gebruikt om een mededeling te schrijven of de Announcements API, je mededeling zal altijd bestaan uit een paar basiselementen. De belangrijkste zijn een titel en inhoud voor de gebruikers om te lezen. Deze items worden ingediend bij de API als eigenschappen van het JSON-object. De enige eigenschap die verplicht is door de Announcements API is de "Title"-eigenschap, maar een lege mededeling is vrij nutteloos, dus we willen ook inhoud toevoegen. De inhoud van de mededeling wordt ingediend in de objecteigenschap genaamd "Description".
Helaas biedt Microsoft niet de volledige inhoud van het nieuwsbericht om op te nemen, maar ze bieden wel een verkorte versie, die de eerste 250 tekens zonder opmaak bevat. Het metadata-veld dat deze gegevens bevat, wordt ook "Description" genoemd in SharePoint. Gelukkig accepteert Workspace 365 HTML-code als inhoud voor de mededeling , dus we zullen deze gegevens aanvullen met een klikbare link naar het volledige nieuwsbericht op SharePoint. Voor de URL van het nieuwsbericht kun je de dynamische inhoud "Link to item" gebruiken. Om de mededeling er wat mooier uit te laten zien, voeg een spatie en twee regelafbrekingstags toe tussen de SharePoint Description en het HTML-hyperlinkelement.
Achtergrondinformatie over de geschiedenis van het uitvoeren van de flow
Je Power Automate-flow wordt geactiveerd door het aanmaken van het bericht, dus de flow zal aanvankelijk rapporteren als Geslaagd. Aangezien het bericht echter alleen is aangemaakt maar nog niet is gepubliceerd, zal de Promoted State niet gelijk zijn aan 2 en zal de voorwaarde die we in onze flow hebben ingesteld falen. Dit betekent dat de eerste test niet zal leiden tot een mededeling . Echter, omdat we het nieuws hebben geplaatst zodra we klaar waren met bewerken, zal de flow een tweede keer kort na de eerste keer worden geactiveerd. Je zult dit zien in de geschiedenis van het uitvoeren van de flow.
Klik op de blauwe "Terug"-pijl in de linkerbovenhoek van het Power Automate-editorvenster en houd de uitvoeringen in de gaten. Het kan enkele minuten duren voordat de flow wordt uitgevoerd, maar uiteindelijk zul je twee uitvoeringen zien:
Optionele functies
Configureer een statische mededelingscategorie
Als je wilt dat mededelingen altijd in een specifieke categorie worden geplaatst, kun je dit definiëren in de body van de HTTP-actie. Bijvoorbeeld door de categorie in te stellen op de specifieke waarde "Sharepoint":
{
"Title": "@{triggerOutputs()?['body/Title']}",
"Description": "@{triggerOutputs()?['body/Description']}<br> <br><a href=@{triggerOutputs()?['body/{Link}']}>Read more on Sharepoint</a>",
"Category": {
"Name": "Sharepoint"
}
}
Instellen van een mededelingsoptie via een SharePoint-kolom
Als je kolommen kunt toevoegen aan het SharePoint Site Pages-formulier, kun je dit gebruiken als een gemakkelijke manier om mededelingsopties te beheren, zoals de optie om de mededelingen als een pop-up weer te geven.
Zo werkt dit:
Het mededelingsschema van de Announcements API bevat een eigenschap genaamd "ShowPopupDirectlyToUser". Deze optie verwacht een waarde van "true" of "false". Als je een kolom toevoegt aan het Site Pages-formulier met een beschrijvende naam en de waarden opgeeft die door de API worden verwacht als mogelijke opties, kun je deze informatie direct doorgeven aan de Announcements API.
Dit is een kolom van het type Keuze. In dit voorbeeld hebben we een beschrijving toegevoegd en de keuzes bewerkt om overeen te komen met de waarden die door de API worden verwacht. De standaardwaarde is false, dus we hebben ook de standaardwaarde in SharePoint ingesteld op false. Door de keuzes als een radioknop weer te geven, dwing je een enkele selectie af. Als je wilt dat deze optie verplicht is wanneer een nieuwsbericht wordt gemaakt, stel dan "Vereisen dat deze kolom informatie bevat" in op Ja.
Zodra deze kolom is toegevoegd, kunnen we deze nu toevoegen aan onze flow als dynamische inhoud. Zorg ervoor dat je de Waarde kiest en niet de kolomtitel:
Extra voorwaarden toevoegen om nieuwsberichten te filteren
Als je nieuwsberichten wilt filteren voordat ze naar de Announcements API worden verzonden, kun je extra criteria toevoegen aan de Voorwaarde. Dit kan gebaseerd zijn op een kolomwaarde zoals in het vorige voorbeeld of een ander metadata-veld. Om een extra voorwaardelijk criterium toe te voegen, klik op de knop "Toevoegen" in de Voorwaarde en kies "Rij toevoegen":
De standaardoperator voor de Voorwaarde rijen is And, omdat je waarschijnlijk wilt filteren op beide criteria. Mocht je willen filteren op een van de criteria, kun je dit wijzigen naar Or. Vervolgens kun je een criterium opgeven in de tweede rij. In dit voorbeeld hebben we een extra kolom toegevoegd aan de Site Pages weergave genaamd “Mijn Filter Kolom”. Zorg ervoor dat je de dynamische inhoud kiest die eindigt op “Waarde”, omdat je wilt filteren op de waarde in de kolom.
Na het kiezen van "Mijn Filter Kolom Waarde", voltooi je het criterium zoals je denkt dat het passend is: