Integraatio

Tapahtumien näyttäminen omalla sivustolla

Tapahtumien näyttämisestä

Fientaan syötettyjä tapahtumia voidaan näyttää suoraan omalla kotisivullasi. Vähäisellä ohjelmoinnilla tapahtumat voidaan muotoilla ja saada toimimaan vastaamaan oman kotisivusi tyylejä ja rakennetta.

Julkinen API

Julkinen APImme perustuu REST protokollaan, palauttaa JSON-muodossa tietoja ja käyttää standardeja HTTP-vastauskoodeja.

Endpoint

Käytä seuraavaa endpointia tekemään pyyntö tietyn järjestäjän kaikista tulevista, julkaistuista ja julkisista tapahtumista:

GET /api/v1/public/events?organizer=<organiser_id>

<locale>
Kaksikirjaiminen kielilyhenne, joka määrittää halutun tapahtuman kielen.

Jos tapahtumaa ei ole syötetty pyydetyssä kielessä, palautetaan se jollakin muulla kielellä. Jos haluat näyttää vain pyydetyssä kielessä syötettyjä tapahtumia, lisää pyyntöön parametri "locale_strict".

<organiser_id>
Järjestäjän ID Fientassa, jonka arvon löydät vierailemalla Asetukset-sivulla. 
Esimerkki: jos Asetukset-sivun osoite on /my/organizers/1234/edit, niin organiser_id arvo on 1234.

Esimerkki: Pyyntö palauttaa järjestäjän 1234 tapahtumat, suosien suomenkielistä sisältöä:

GET /api/v1/public/events?organizer=1234&locale=et

Esimerkki: Pyyntö palauttaa järjestäjän 1234 vain englanninkieliset tapahtumat:

GET /api/v1/public/events?organizer=1234&locale_strict=en

Katso lisätietoja pyyntöparametreista API dokumentatsioonist.

Pyynnön vastaus

Esimerkki JSON API -vastauksesta

{"events": [
  {
    "id": 5678,
    "title": "Indie festival",
    "starts_at": "2020-12-16 19:00:00",
    "ends_at": "2020-12-16 21:15:00",
    "duration_string": "Mon 16. December 2020 at 19:00 - 21:15",
    "venue": "Millennium Park",
    "address": "201 E Randolph St, Chicago, IL 60602",
    "description": "An award winning festival weekender which takes place on the outskirts of ..",
    "url": "https:\/\/fienta.com\/indie-festival",
    "buy_tickets_url":"https:\/\/fienta.com\/indie-festival",
    "image_url": "https:\/\/fienta.com\/uploads\/5678.jpg",
    "organizer_name": "Smdith Events Ltd.",
    "organizer_phone": "+81 555 666",
    "organizer_email": "[email protected]",
  },
]}

id
Tapahtuman yksilöllinen ID.

title
Tapahtuman otsikko.

starts_at, ends_at
Tapahtuman alkamis- ja päättymispäivä sekä kellonaika.

duration_string
Tekstimuotoinen ilmaisu tapahtuman ajankohdasta.

venue
Tapahtumapaikan nimi.

address
Tapahtumapaikan osoite ilman maan nimeä.

description
Tapahtuman kuvaus, voi sisältää HTML-merkintöjä.

url
Tapahtumasivun täydellinen verkkosoite Fientassa.

buy_tickets_url
Linkki lippumyyntisivulle. Jos lippumyynti tapahtuu Fientassa, on sama arvo kuin "url"-attribuutilla. Jos lippumyynti tapahtuu jossakin muussa ympäristössä, palautetaan vastaava linkki. Jos tapahtumalla ei ole lippumyyntiä eikä rekisteröitymistä, palautetaan tyhjä arvo.

image_url
Tapahtumakuvan täydellinen verkkosoite.

organizer_name
Järjestäjän tai organisaation nimi.

organizer_phone
Järjestäjän puhelinnumero.

organizer_email
Järjestäjän sähköpostiosoite.

JavaScript-esimerkki

Esimerkki JavaScript- ja jQuery-koodista, joka hakee tapahtumat Fientasta ja näyttää neid verkkosivuston sisällössä:

<div id="events">
  <!-- Events will be rendered inside this div -->
</div>

<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script>
jQuery(document).ready(function() {
  // HTML element which will include event list
  var container = jQuery('#events');
  // Pull upcoming events from Fienta
  jQuery.getJSON('/api/v1/public/events?organizer=1234', function(data) {
    // Cycle through the results
    data.events.forEach(function (event) {
      // Write events into DOM
      container.append(
        '<div>' +
        '<img src="' + event.image_url + '">' +
        '<h2>' + event.title + '</h2>' +
        '<p>' + event.duration_string + ' @ ' +
        event.venue + ', ' + event.address + '</p>' +
        '<p><a href="' + event.url + '">Buy Ticket</a></p>' +
        '<p>' + event.description + '</p>' +
        '</div>'
      );
    });
  });
});
</script>

<!-- Optionally, embed ticket purchasing process -->
<script src="/embed.js"></script>