v5.dk logo
Kom ind og besøg vores Discord Chat-community
Bliv medlem her eller læs mere om Discord her
1 stor kaffe i byen eller 1 hel md.
som Premium-medlem, valget er dit! :-)

Mere info Køb nu

Premium på v5.dk
v5.dk logo  v5.dk e-learning
Log på med Facebook
  • Log ind på v5.dk
  • Opret bruger
  • Log ind
  • v5.dk Premium
  • v5.dk Premium
  • Hvad siger vores kunder?
  • E-læring for begyndere
  • icon for WordPress 4 e-learning WordPress 4
  • icon for Office 365 e-learning Office 365
  • icon for Microsoft Word e-learning Microsoft Word
  • Bloggen for alle
  • E-læring for nørder
  • icon for PHP-programmering e-learning PHP-programmering
  • icon for iOS Programmering e-learning iOS Programmering
  • icon for Linux Server e-learning Linux Server
  • Bloggen for nørder
  • Arkiverede videoer
  • Fællesskab
  • Forum
  • Idéer og ønsker
  • Markedspladsen
  • v5.dk Premium
  • Gratis webhotel
  • Cloud-servere
  • Om v5.dk
  • Søg på v5.dk
  • Om v5.dk ApS
    • Om virksomheden
    • RSS-feeds og tjenester
    • Driftsmeddelelser
    • Presse-kit
    • Ledige jobs
    • Social Netværk
      • Facebook
      • Twitter
      • Instagram
    • Alt det andet
      • Forretningsbetingelser
      • Ophavsret og Copyright
  • Kontakt kundeservice
  • FAQ og Hjælp
    • Premium og abb.
    • Videoer og Afspiller
    • Forum og Points
    • Cloud-servers
  • Partner/Virksomhed
  • Partner-kanal
v5.dk logo mobile
  • Menu
  • Opret bruger

Generer en PUSH når API leverer nye data

  • v5.dk
  • Forum
  • PHP-programmering
  • Generer en PUSH når API leverer nye data
  • Sidevisninger: 3549 har set dette indlæg
Besvar #0Spørgsmål oprettet af @psto | 3665 points
60 points ude 5 indlæg 7 år siden Spørgsmålet er ikke løst
avatar
 

Hej,

Jeg er kunde hos Firmafon der tilbyder et API til deres telefonsystem. Super smart! Det har dog et par mangler som jeg forsøger selv at programmere mig ud af.

Én af manglerne er en push der gør en action så snart der registreres et nyt indgående opkald.

Via API'et har man mulighed for at trække igangværende opkald med status "ringing". 

Er det muligt at lave et script der konstant holder øje med om der kommer et indgående kald?

Det kunne jo være et hvilket som helst API den holdt øje med, så mit spørgsmål går vel bare på om det er muligt at lave en slags overvågning af en url hvor mit API måske kører uden at det belaster serveren unødigt. 

Jeg skal bruge funktionen til at skabe en push notification hos min bruger for at synliggøre et nyt indgående opkald.

avatar
 
Besvar#1 @db Admin kommenterede for 7 år siden

Hej  psto @psto   

Hvis ikke Firmafon tilbyder noget i deres ende, er der ikke rigtigt noget at gøre, andet end at trække på deres API hver X sek. for at se om der nogle der ringer. Ikke særligt praktisk, men det virker.

Det er mange år siden jeg var kunde ved Firmafon og dengang havde de ikke noget, der muliggør det du efterspørger, og ud fra den dokumentation du netop sender, ligner det ikke der er kommet noget siden som bl.a. Webhooks eller Streaming APIs.

Jeg ville nok vælge at GET /reception/status, hvis det er muligt i dit tilfælde, så du ikke skal bøvle med alt for meget data. Så får du en int tilbage med antal "ringing", og udfra denne, kan du bygge dit kald.

Du kan evt. køre dine API-kald via Javascript/jQuery, hvis du har en browser som står åben, som så kan give besked hvis der er nye opkald, det er bl.a. sådan vi gør med vores LiveChat her på kontoret, hvor vores infoskærme viser en rød kasse, hvis der er brugere på vores live-chat kundeservice.

Håber dette svarede på dit spørgsmål.


Med venlige hilsner

Daniel Bahls Signatur   Daniel Bahl (@db)
   CEO – v5.dk ApS

avatar
 
Besvar#2 @psto kommenterede for 7 år siden

Hej  db @db   ,

Tak for hurtig respons.

Det er desværre lidt samme løsning jeg selv er nået frem til, men begriber ikke at der ikke er en smartere løsning. Øv! 

Er der nogen fidus i at køre det som et Cronjob der looper x antal gange hvis jeg skal undgå afhængigheden af en browser?

Mange hilsner - Patrick

avatar
 
Besvar#3 @db Admin kommenterede for 7 år siden

psto @psto    Ja, det er muligt at eksekvere et cronjob, men da et cronjob eksekveres hvert minut, er du nødt til at lave lidt hacks i dit PHP-script, hvis du ønsker at kører dit kald ex. hvert sekund.

Først, se vores blogindlæg her på v5.dk om at forhindre cronjobs i at overlappe hinanden.

Herefter kan du bruge følgende kode til at eksekvere dine kald, 60 gange:

$start = microtime(true);
set_time_limit(60);
for ($i = 0; $i < 59; ++$i) {
    doFirmafonStatus();
    time_sleep_until($start + $i + 1);
}

Tjek evt. om Firmafon har Rate limiting på deres API, altså så det måske kun kan kaldes X antal gange i timen, i så fald, skal du naturligvis overholde disse regler 

Edit: Bemærk ovenstående kode er et eksempel hvor den kører en loop 60 gange, og pauser 1 sekund mellem hvert kald.

Redigeret af db @db  d. 27.02.2016 kl. 10:40

Med venlige hilsner

Daniel Bahls Signatur   Daniel Bahl (@db)
   CEO – v5.dk ApS

avatar
 
Besvar#4 @db Admin svarede for 7 år siden

En anden løsning, kunne også være watch-kommandoen, ex:

watch -n 1 /var/bin/scripts/do_FirmafonSync.php

Dette vil eksekvere php-scritpet hvert sekund.

Redigeret af db @db  d. 27.02.2016 kl. 10:52

Med venlige hilsner

Daniel Bahls Signatur   Daniel Bahl (@db)
   CEO – v5.dk ApS

avatar
 
Besvar#5 @dhh Admin kommenterede for 7 år siden

Et alternativ i Bash, hvis du ikke vil benytte dig af watch-kommmandoen, ville være at bruge et simpelt while loop:

#!/bin/bash

## Følgende fil her, vil eksekvere koden imellem do/done uendeligt.
## Indtil den enten for en exit 0 eller return status. (False.)
## Eller at du stopper scriptet med CTRL + C.

while :
do
    ## Eksekver et PHP script.
    php filnavn.php

    ## Eksekver en Bash fil.
    sh filnavn

    ## Eksekver en Python fil.
    python filnavn.py

    ## Når filen er færdig med at eksekvere "sov" i nogen sekunder.
    ## Du kan fjerne sleep, og så vil den køre fra toppen så hurtigt den kan.
    sleep 5 # venter fem sekunder og starter forfra - fra toppen
done

Med venlige hilsner

Daniel H. Hemmingsen (@dhh)

avatar
 

Du er ikke logget ind

Du skal være logget ind på v5.dk før du kan benytte vores forum. Det er ganske gratis at oprette en bruger.

Opret en ny gratis bruger Log ind

Følger med i denne tråd

psto db

Forum kategorier

  • Generelt
  • Guides & Howto114
  • Offtopic / Andet302
  • Microsoft Office
  • Microsoft Word15
  • Microsoft Excel4
  • Microsoft PowerPoint0
  • Web og hjemmesider
  • Wordpress17
  • Operativsystemer
  • Apple Mac OS X15
  • Apple iOS28
  • Microsoft Windows4
  • Linux16
  • Teknologier
  • Netværk og WiFi4
  • Internet-tjenester9
  • Programmering
  • PHP-programmering125
  • iPhone-/Xcode-programmering10

Aktive forum-tråde lige nu

cali weed bestellen
cali weed sorten
Hvor kan jeg finde lejeboliger i Danmark?
buy ielts certificate online, buy ielts certificate without exam
Korrekt ernæring
Buy valid ielts certificate online / buy Toefl certificate online
Vedr. netværk switch til coax router
Fejl ifm. var_dump
Bygget med af v5.dk
© Copyright 2006-2023 • Forretningsbetingelser • Copyright • Persondata- og Cookiepolitik
v5.dk ApS - Åbogade 15 - 8200 Aarhus N - CVR: 36902833
v5.dk logo
Hej, vi hedder v5.dk og vi laver e-learning på dansk

v5.dk er sat i verden for at gøre teknologi tilgængeligt og anvendeligt for både professionelle og almindelige brugere på alle niveauer.

93 200 555
  Skriv til os
v5.dk bruger cookies til at huske dine indstillinger, livechat samt til statistik
 

Alle vores priser er inkl. moms Sikker SSL-beskyttet forbindelse

Dankort og Visa-Dankort  Visa  Mastercard og Mastercard Junior  Maestro

  • Produkter
  • v5.dk Premium
  • Cloud-servers
  • v5.dk
  • Om v5.dk
  • Kunderne siger
  • Kontakt os
  • Presse
  • Stay updated
  • RSS & tjenester
  • Søg på v5.dk
  • Sitemap