Tagasi blogisse
SharePointPower AutomateRSSAutomatiseerimine

RSS-feedi piltide automaatne salvestamine SharePointi Image-veergu Power Automate'iga

27.5.202611 min lugemist

Samm-sammuline juhend, kuidas ehitada Power Automate voog, mis loeb RSS-feedi, laeb pildi alla, kontrollib dubleerimist ja salvestab selle SharePointi loendi Image-veergu.

RSS-feedi pildi sünkroniseerimine SharePointi raamatukokku Power Automate'iga

Paljud organisatsioonid tahavad oma siseveebis (intranetis) kuvada värsket uudisvoogu kas oma välisest WordPressi blogist, partneri uudisportaalist või avaliku sektori RSS-allikast. SharePoint Online võimaldab uudiseid kuvada kaunite kaartidena – aga ainult siis, kui igal kirjel on ka pilt salvestatud Image-veerule. Pelgalt välise URL-i lisamine ei tööta: SharePointi News web part ootab pilti, mis on tegelikult Site Assets'is olemas.

Õnneks saab kogu protsessi – RSS-i lugemise, pildi allalaadimise, dubleerimise kontrolli ja kirje uuendamise – automatiseerida ühe Power Automate vooga. Selles artiklis vaatame täpselt sellise voo loogikat sammu kaupa, tuginedes c-sharpcorner.com avaldatud praktilisele juhendile.

Mida voog teeb?

Lõppvoog teeb iga päev (või sinu valitud sagedusel) järgmist:

  • Käivitub Recurrence trigeri alusel.
  • Loeb List all RSS feed items abil värskeima uudise pealkirja, kuupäeva ja sisu.
  • Eraldab pealkirjast ja HTML-summary'st pildi URL-i.
  • Kontrollib SharePointi loendis, kas sama Publish Date'iga kirje juba on – kui jah, uuendab seda, mitte ei loo uut.
  • Laeb pildi HTTP GET-iga alla binaarse failina.
  • Kontrollib, kas sama nimega pilt on juba Site Assets'is – kui ei, loob faili; kui jah, taaskasutab olemasolevat.
  • Uuendab SharePointi loendi kirje Image-veeru selle pildi viitega.

Samm 1. Recurrence trigger

Voog algab Recurrence trigeriga – Interval 1, Frequency Day. Soovi korral määra Start Time, et voog käivituks alati näiteks öösel kell 02:00, kui SharePointi koormus on minimaalne. Sage RSS-i pollimine (iga 15 minutit) tundub mõnusalt „reaalajas“, kuid sööb Power Automate API kvooti ja on enamiku ettevõtte uudisvoogude jaoks ülearu agressiivne.

Samm 2. List all RSS feed items

Lisa „List all RSS feed items“ aktsioon ja sisesta RSS URL. Kasuta seejärel Compose aktsiooni, et sorteerida tulemused Publish Date järgi ja võtta ainult uusim:

first(sort(outputs('List_all_RSS_feed_items')?['body/value'], 'publishDate', 'desc'))

Nii vältid olukorda, kus RSS tagastab elemendid suvalises järjekorras ja sa uuendaksid kogemata vana kirjet.

Samm 3. Get items – kas kirje on juba olemas?

Lisa „Get items“ aktsioon SharePointi loendi vastu ja kasuta Filter Query'd, et leida sama publish date'iga olemasolev kirje:

PublishDate eq 'OUTPUTS_FROM_COMPOSE_PUBLISH_DATE'

Selle filtri eesmärk on lihtne – kui kirje on, siis update'ime sama ID-d; kui ei ole, loome uue. See on kogu duplikaatide vältimise loogika alus.

Samm 4. Pealkirja ja pildi URL-i eraldamine

Lisa kaks Compose aktsiooni. Esimene lühendab pealkirja, et seda saaks kasutada faili nimena (SharePointi failinimedes on keelatud märke ja pikkuse piirang):

substring(triggerBody()?['title'], 0, min(80, length(triggerBody()?['title'])))

Teine eraldab pildi URL-i RSS summary HTML-ist src-atribuudist:

first(split(last(split(outputs('Get_RSS_summary'), 'src="')), '"'))

Kui sinu RSS-feed paneb pildi enclosure-tagi sisse (nagu paljud WordPressi feedid teevad), tasub pigem kasutada item.enclosure.url väärtust.

Samm 5. HTTP GET – pildi allalaadimine

RSS annab ainult URL-i, mitte faili. Et see SharePointi panna, peame pildi binaarsel kujul alla laadima HTTP aktsiooniga – Method GET, URI eelmise sammu Compose'i väljund. Tulemus on $content väljas, mida saab otse File Content'iks edasi anda.

"Many RSS feeds only give an image URL (not the actual file), so we need to download the image content (binary data) before uploading it to SharePoint."

C# Corner – Auto-Fetching RSS Feed Images

Samm 6. Kas pilt on juba Site Assets'is?

Enne uue faili loomist tasub kontrollida, kas sama nimega pilt on Site Assets'i Lists/[LibraryID] kaustas juba olemas. Selleks „Send an HTTP request to SharePoint“, Method GET:

_api/web/GetFolderByServerRelativeUrl('/sites/YourSite/SiteAssets/Lists/<LibraryGUID>')/Files?$filter=Name eq '<ImageFileName>'

Seejärel Condition: kui tagastatud massiivi pikkus on 0, mine Yes-haru (loo uus fail), muidu No-haru (taaskasuta olemasolevat). Selle sammuga väldid igapäevast Site Assets'i paisutamist sama pildi kümnete koopiatega.

Samm 7. Faili loomine või kirje uuendamine

Yes-harus kasutame „Create file“ aktsiooni Site Assets'i suunas: Folder Path /SiteAssets/Lists/<LibraryGUID>, File Name eelmise Compose'i väljund + .jpg laiend, File Content HTTP aktsiooni $content.

No-harus läheb otse SharePointi REST-päring, mis uuendab loendi kirje Image-veeru viitama olemasolevale failile. Image-veerg SharePointis on tegelikult JSON-string, mille peab paika panema POST-päringuga valideerimisega:

POST _api/web/lists(guid'<ListGUID>')/items(<ItemID>)/ValidateUpdateListItem

Headers:
  Accept: application/json;odata=verbose
  Content-Type: application/json;odata=verbose
  IF-MATCH: *
  X-HTTP-Method: PATCH

Body:
{
  "formValues": [{
    "FieldName": "NewsImage",
    "FieldValue": "{\"type\":\"thumbnail\",\"fileName\":\"<ImageFileName>.jpg\",\"serverRelativeUrl\":\"/sites/<YourSite>/SiteAssets/Lists/<LibraryGUID>/<ImageFileName>.jpg\"}"
  }]
}

ValidateUpdateListItem on ainus toetatud viis Image-veeru kirjutamiseks – tavaline „Update item“ ei oska seda JSON-struktuuri korrektselt vormistada.

Levinud tõrked ja kuidas neid vältida

  • Pilt ei kuva News web part'is – serverRelativeUrl ei alga / märgiga või osutab valele site collectionile.
  • Sama uudis tuleb iga päev uuesti – Filter Query kasutab vale veerunime või date-formaati (kasuta yyyy-MM-ddTHH:mm:ssZ).
  • HTTP 403 SharePointi REST-päringule – voog kasutab konto õigusi, millel pole Site Assets'is kirjutusõigust.
  • Pilt on katki ainult mobiilis – RSS-allikas tagastab CDN-URL-i, mis nõuab Referer'i päist; lisa HTTP aktsioonile Headers Referer.
  • Voog jookseb suurte feedide korral kokku – lisa Try/Catch ümbris ja Configure run after, et saata vea korral admin'ile e-kiri.

Mida sellega edasi teha?

Kui baas-voog töötab, on loomulik järgmine samm laiendamine: mitme RSS-allika korraga lugemine, automaatne tõlkimine teise keelde Azure Translator API-ga, või AI Builder'i kaudu pealkirja kvaliteedi parandamine enne SharePointi salvestamist. Sama mustrit – „loe väline allikas → laadi binaarne sisu alla → kontrolli dubleerimist → uuenda Image-veeru kaudu“ – saab kasutada ka dokumentide, pressiteadete või isegi tootepiltide haldamiseks.

Lõppkasutaja jaoks tähendab see vahet öise käsitsi-copy-paste'i ja täiesti automaatse, värske ja visuaalse intraneti uudisvoo vahel. Kui sinu organisatsioonis on intranet, mille uudised on aastast 2022, on see üks kõige kõrgema ROI-ga Power Automate voogudest, mida saad ehitada.

Allikad

Soovid sarnast lahendust oma ettevõttele?

Broneeri tasuta konsultatsioon ja arutame, kuidas SharePoint ja AI saavad sind aidata.

Võta ühendust

Loe veel