Avatar billede Slettet bruger
29. juli 2009 - 23:25 Der er 17 kommentarer og
1 løsning

Simpel oprettelse af task i Highrise via form i PHP -> API

Hej, kan en herinde lave et simpel eksempel på oprettelse af en task i Highrise via deres API fra en flad html form og php? :)

Highrise API dokumentation: http://developer.37signals.com/highrise/tasks.shtml

Jeg kunne godt tænke mig at se et eksempel af Create for specific time
Avatar billede repox Seniormester
29. juli 2009 - 23:35 #1
Det du gerne vil have er at vi skal sætte os ind i et API, gennemgå dokumentationen for dette, signe up til en service som vi (muligvis) intet kender til eller nødvendigvis har tillid for point?
Avatar billede Slettet bruger
30. juli 2009 - 00:09 #2
hmm.. det var vidst så ikke lige dér dine kompetencer lå, kan jeg forstå? :)

det jeg gerne vil have er at hvis en har svaret på det, kan man svare ;P

..det tager ca. 2 min. at oprette en gratis konto på systemet og køre en api tokens ud og hvis nogen mener at de vil kunne gøre det hurtigere for et givent beløb (fordi man måske ikke lige har en snippet liggende) er jeg da også åben overfor tilbud, så længe at det ikke, af en eller anden mærkelig grund er at overskride reglerne herinde naturligvis? :)
Avatar billede repox Seniormester
30. juli 2009 - 00:18 #3
Du har ingen idé om hvad mine kompetencer er - hån bringer dig ikke langt.

Mit indlæg var udelukkende en udpensling af hvad du beder folk om at gøre for dig gratis.

De to minutter du snakker om er tilsyneladende det eneste tidestimat du kan have begreb om i opgaven. Men det at sætte sig ind i API'et og lave et færdigt script til dig, udover det at oprette en konto hos en serviceudbyder (gratis eller ej) er ikke noget 'man bare lige gør'.

Jeg vil hjertens gerne gøre det for dig, men jeg har en ret hamper timepris - seriøse priser sorterer useriøse kunder fra. Hvis ikke en venlig sjæl herinde vil hjælpe dig med foretagendet gratis, kan du jo vende tilbage.
Avatar billede JanusHoi Praktikant
30. juli 2009 - 00:30 #4
repox vrissede -> "Mit indlæg var udelukkende en udpensling af hvad du beder folk om at gøre for dig gratis."

I forhold til noget af alt det andet visse folk beder om og forventer gratis (og endda rykker for hurtigere svar) herinde, burde du måske, hvis du mener dét er din pligt, hellere pensle ud hos nogle af dem der er virkeligt krævende.

Jeg må erkende, at jeg også læste dit første indlæg som et "Næh, det kan jeg ikke finde ud af"-svar, snarere end et "Det har jeg fuldstændig styr på, men DU får det bare ikke at vide"-svar.
Og jeg prøver ikke engang at være hånlig.
Avatar billede Slettet bruger
30. juli 2009 - 00:41 #5
"- hån bringer dig ikke langt" og lige præcis derfor besvarede jeg som jeg gjorde på din første nedgørelse af opgaven, da der jo rent faktisk kunne sidde en udvikler herinde med en snippet i lommen til at besvare den med (at du måske ved at der ikke gør det, gør vel ikke min IQ lavere af den grund? selvom du skulle have det til at lyde sådan -jeg kender ikke antalet af udviklere herinde, eller deres kompetencer for den sags skyld)

Anyway, røg og damp til side.. Jeg har fundet en class her til at lægge ud med (download neders på siden): http://www.userscape.com/helpdesk/index.php?pg=kb.page&id=169
men jeg er designer og ikke udvikler, så det vil nok tage en rum tid at få kringlet ud hvordan jeg bruger den..
Avatar billede repox Seniormester
30. juli 2009 - 00:47 #6
#4
Du er jo ikke helt ny herinde; hvad er årsagen til at du lægger et svar uden at komme med et løsningsforslag der er relevant for tråden? Du lægger et svar til noget som alligevel ikke er relevant for tråden. Men svar skal du da få...

Ja, jeg vrisser når man udtaler sig om noget man ikke ved noget om - hvad ville du sige til at få en sætning som 'nå, det kunne du så åbenbart ikke finde ud af' møntet på dig? Fint nok hvis du vil acceptere det fra fremmede folk, men det finder jeg mig ikke i.

At folk forventer at få noget gratis, uanset om de rykker for det eller ej, berettiger dem ikke til at få det udført. At du ser det som om jeg udfører en form for pligt, når jeg prøver at få folk til at forstå omfanget af den opgave de stiller for dagen, må være dit eget problem. Nogle værdsætter det, andre bliver pigesure...

Hvordan du iøvrigt har opfattet mit første indlæg må også stå for egen regning; på intet tidspunkt har jeg proklameret eller insuineret at jeg kan løse opgaven uden at sætte mig ind i den. Rent faktisk, hvis du læser mit indlæg igennem, så fortæller jeg faktisk at det kræves at man sætter sig ind i det omtalte API.

Når det er sagt og folk kan lide det eller ej, så ender diskussionen omkring min adfærd i tråden her. Hvis nogen er utilfredse tager jeg gerne imod kritik via exp.dk PM system. Og nej, jeg er ikke bange for kritik - jo mere jo bedre, ellers ville jeg ikke have nogen mulighed for at udvikle mig.

Men som sagt, EOD omkring min adfærd - det er det PM er til for.
Avatar billede repox Seniormester
30. juli 2009 - 00:50 #7
#5
Jeg beklager først som sidst, hvis du fik den opfattelse at jeg mente at du var uintelligent. Det var ikke min hensigt. Jeg kender dig ikke og kan ikke udtale mig om dig som person. Omfanget af opgaven var min kernesag. Og ja, tilbage til sagen.

At du har fundet en klasse til at løse opgaven, gør sagen lidt nemmere. Hvis du skal have hjælp til at få implementeret klassen, ville det hjælpe hvis du kunne komme med lidt kode om hvor det skal implementeres, så vil jeg lige kigge på klassen imens.
Avatar billede Slettet bruger
30. juli 2009 - 01:09 #8
Det jeg havde tænkt mig i sidste ende at endne op med er en formular hvor en person kan skrive sine oplysning ind ang. at blive ringet op på et givet tidspunkt, og så at disse informationer så automatisk bliver registret som en task ovre i Highrise.

men så snart at vi kan få formularen til at køre noget over i Highrise, burde jeg godt selv kunne finde at at pudse det af med noget dropdown til valg af tid og sådan, men er selvfølgelig åben for al den hjælp jeg kan få til det

Det jeg har indtil videre er en index.php jeg kører den lige indtil videre fra xampp med curl slået til (..der er ændret lidt på et par af variablerne..)


<?php

//dette php er jo højst sandsynligt noget være vås :)

include_once('post.php');
$Highrise = new RequestPush_Highrise;

if ($_POST) {
    $Highrise->push($_REQUEST['form']);
}
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Opret ny kontaktperson i Highrise©</title>
</head>

<body>

<form action="index.php" method="post" id="form" name="form">


<label for="sFirstName">Fornavn: </label><br />
<input type="text" name="sFirstName" id="sFirstName"></input><br /><br />

<label for="sLastName">Efternavn: </label><br />
<input type="text" name="sLastName" id="sLastName"></input><br /><br />

<label for="sBackground">Baggrund: </label><br />
<input type="text" name="sBackground" id="sBackground"></input><br /><br />

<label for="sCompany">Firmanavn: </label><br />
<input type="text" name="sCompany" id="sCompany"></input><br /><br />

<label for="sEmail">E-mail: </label><br />
<input type="text" name="sEmail" id="sEmail"></input><br /><br />

<label for="sPhone">Telefonnummer: </label><br />
<input type="text" name="sPhone" id="sPhone"></input><br /><br />

<input type="submit" value="Send til Highrise =>" />

</form>

</body>
</html>
Avatar billede repox Seniormester
30. juli 2009 - 01:13 #9
Men det er meningen du skal bruge den task du snakkede om? Eller er den API funktion klassen du har fundet mere det du mangler?
Avatar billede Slettet bruger
30. juli 2009 - 01:24 #10
Det er i sidste ende en task, der skal oprettes, for det er jo en opgave at skulle huske at ringe til en person udfra de oplysninger han har givet i formularen, så det skal nok koges lidt ned i forhold til det den "gør" nu :)
Avatar billede repox Seniormester
30. juli 2009 - 01:52 #11
Jeg har lavet en testklasse som du kan finde her: http://php.pastebin.com/m484349b1

Den bruges således:
    $highrise = new highrise("http://din_url.highrisehq.com", "api_token");
    $highrise->createSpecificTime("Titel", "Tidsramme", "kateogri", UNIX TIMESTAMP);

Og skulle man flette det ind i det du har ville det nok være noget ala:
<?php

//dette php er jo højst sandsynligt noget være vås :)


if (count($_POST) > 0)
{
    include_once('highrise.php');
    $highrise = new highrise("http://sample.highrisehq.com", "357a9c68");
   
    $string = $_POST["sFirstName"].", ".$_POST["sLastName"].", ".$_POST["sBaggrund"].", ".$_POST["sCompany"].", ".$_POST["sEmail"].", ".$_POST["sPhone"];
   
    $highrise->createSpecificTime($string, "Senere", 1, time())
   
}
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Opret ny kontaktperson i Highrise©</title>
</head>

<body>

<form action="index.php" method="post" id="form" name="form">


<label for="sFirstName">Fornavn: </label><br />
<input type="text" name="sFirstName" id="sFirstName"></input><br /><br />

<label for="sLastName">Efternavn: </label><br />
<input type="text" name="sLastName" id="sLastName"></input><br /><br />

<label for="sBackground">Baggrund: </label><br />
<input type="text" name="sBackground" id="sBackground"></input><br /><br />

<label for="sCompany">Firmanavn: </label><br />
<input type="text" name="sCompany" id="sCompany"></input><br /><br />

<label for="sEmail">E-mail: </label><br />
<input type="text" name="sEmail" id="sEmail"></input><br /><br />

<label for="sPhone">Telefonnummer: </label><br />
<input type="text" name="sPhone" id="sPhone"></input><br /><br />

<input type="submit" value="Send til Highrise =>" />

</form>

</body>
</html>

Men prøv det lige af; jeg tror ikke du opnår det du gerne vil, i forhold til API opgaven - det virker mere som om du vil oprette en person?
Avatar billede Slettet bruger
30. juli 2009 - 01:57 #12
Du er simpelthen en verdensstjerne!
Jeg prøver det af med det samme! :)

Jamen det skal også køres meget simpelt ind, men jeg kunne bare ikke få fyret op under den class dér..

Men jeg vil prøve det med det samme! :D

En kæmpe tak indtil videre
Avatar billede Slettet bruger
30. juli 2009 - 02:13 #13
Den manglede lige en ; på linje 13 i php'en med formularen, men så kørte den det igennem, så skal jeg bare have fundet ud af det med timestampet og lige have formateret stringen lidt pænere, og så er den præcist som jeg ønskede det! :)

Det er virkeligt flot du har da godtnok også fået pyntet lidt op på den class der! :)
Avatar billede repox Seniormester
30. juli 2009 - 08:56 #14
Altså, efter min egen mening kunne klassen være pænere; den er lavet ud fra det dokumentationen fortalte mig og var egentlig et oplæg til en løsning; der er ingen validering af data og så videre, men den validering kan du selvfølgelig forestå inden du smider data i klassen.

Men du siger timestampet ikke virker? Det har ellers fået det format der blev vist i API dokumentationen.

Men du siger til hvis der er noget der ikke fungerer efter hensigten, så må jeg lige se på hvad jeg kan gøre ved klassen.
Avatar billede Slettet bruger
30. juli 2009 - 23:54 #15
Hvad er det for en validerig du tænker på?
-at request'ne til klassen kun kommer fra hvor vi vil have dem fra, eller? :)

Det med timestampet mente jeg egentlig bare, pag. du havde sat due_at til at være tiden den blev smidt over i klassen, men den har jeg nu lavet sådan at man kan vælge vha. en mootools date/time picker, og det er også meget fint bortset fra 1 ting, og det er at due_at tiden ligger 2 timer senere end hvad man rent faktisk har valgt, og det er jo lidt noget rigtig skidt, men det underlige er at jeg har ført tiden fra pickeren med op i stringen der lave $body, så den bliver vist ovre i Highrise, og der viser den altså tilgengæld bare at tiden ER korrekt sat!
-og jeg har sat tidzonen på min konto derinde :S

Så det kan vel næppe være noget du har gjort galt?

Jeg kan ikke helt rigtig forestille mig hvad man ellers ville kunne forbedre klassen med, da jeg jo somsagt ikke er udvikler, og har det derfor med at ligge tankerne på nogle lidt andre ting istedet..hehe

Men jeg synes at du har vist et flot stykke arbejde, og kunne godt tænke mig at høre om, og i så fald hvor, jeg kan kontakte dig ang. mere professionelle opgaver fremover, hvis det har interesse?
Avatar billede repox Seniormester
31. juli 2009 - 07:44 #16
Well, tidszonen vil selvølgelig være et problem. Du kunne eventuelt lave en abstrakt funktion der lavede dit timestamp i forhold til den tidszone som highrise benytter.
At tiden vises korrekt i body'en er sandsynligvis fordi at body'en bliver præsenteret 'as is'. Det er nok det der svarer til din note om hvad tasken drejer sig om.

Men ihvertfald, klassen mangler noget validering af brugerinput, men det kan du naturligvis selv styre inden du sender inputtet til objectet - så er vi ude over det. ;) Så vidt jeg kunne forstå var det også et internt værktøj? I så fald betyder det jo mindre.

Med hensyn til fremtidige opgaver kan jeg kontaktes på mail:
[code]storm at err0r dot dk[/code]
Da jeg er programmør påtager jeg mig ingen opgaver af grafisk art; jeg arbejder ud fra design, ikke med design. ;)

Jeg er glad for at høre at klassen kan bruges.
Avatar billede Slettet bruger
31. juli 2009 - 08:12 #17
Hvis du har et simpelt bud på en sådan funktion der trækker 2 timer fra timestampet (eller måske ændrer tidszonen for det?) inden den bliver kørt over i klassen ville jeg blive rigtig glad, for jeg prøvede selv igår, men uden held naturligvis..

Ja jeg laver bare selv valideringen i frontenden :)
-Naa min lille lumske plan var faktisk at få det op på mit website sådan at når kunder bestiller en kontakt fra os ville informationerne føres direkte over hvor jeg skal bruge dem i Highrise, så det er lidt en enhancement til den større operation jeg er igang med på det område, plus at jeg mangler kontakt med skarpe udviklere som dig, til at give betalte opgaver indimellem :)

Det, at du arbejder udfra design passer mig bedre end noget andet, da vores fag jo er afhængige af hinanden, men tilgengæld meget sjældent adder specielt hverken kønt eller funktionelt op med hinanden i een og samme person c'',)

Hvis du ligger et svar er point'ne velfortjent dine :)
Avatar billede repox Seniormester
31. juli 2009 - 08:32 #18
Det nemmeste og mest fleksible for en allerede eksisterende løsning, ville nok være at trække to timer fra, end at ændre tidszonen:
[code]
function highrise_time($timestamp = null)
{
    $twoHours = 60 * 60 * 2;
   
    if($timestamp === null)
        $timestamp = time();   
   
    $newTime = $timestamp - $twoHours;
   
    return $newTime;
}

// Brug af funktionen
$time = time();
$htime = highrise_time($time);
[/code]

I princippet kunne du godt tage funktionen med i klassen, så klassen ville blive udvidet, men det ville efter min mening ikke være nogen god idé da klassen så pludseligt ville blive mere specifik og svær at genbruge, uden at skulle foretage rettelser i klassen.

Jeg kan kun nikke genkendende til at en grafiker og en programmør sjældent kan være en og samme person; personligt kan jeg ikke tegne en lige streg på et stykke papir om jeg så havde en lineal :p

Men du skal være velkommen til at kontakte mig hvis det er: så vurderer vi opgaverne derfra.

Og jeg smider et svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester