Serviceklass för Facebook Graph API
|
|
- Gustav Svensson
- för 6 år sedan
- Visningar:
Transkript
1 Examensarbete Serviceklass för Facebook Graph API Marco Iu Ämne: Datavetenskap Nivå: B Kurskod: 1DV40E
2 Abstrakt Rapporten grundar sig på en delmängd av ett projekt som utfördes åt uppdragsgivaren SocialWorks. Projektet innefattade bland annat att arbeta mot externa webbtjänster. Genom webbtjänster kan webbaserade datorprogram kommunicera och skicka data till varandra. Då en webbtjänst nyttjas behöver utvecklaren sätta sig in i API:et för webbtjänsten. Denna rapport tar upp ett antal problem som kan uppstå vid användandet av en sådan webbtjänst och hur dessa problem kan lösas genom att skapa ett mellanlager i form av en serviceklass. Alla API-anrop ska gå genom serviceklassen och därmed behöver kodförändringar endast göras i serviceklassen ifall API:et förändras. Som ett resultat av arbetet togs en serviceklass fram som underlättar användningen av Facebooks Graph API tillsammans med PHP-ramverket Zend Framework. Genom serviceklassen behöver användaren inte sätta sig in i Facebook Graph API i detalj. Dessutom skapades en testapplikation i Zend dels för att testa serviceklassens funktionalitet och dels för att hantera så kallade testanvändare som Facebooks Graph API tillhandahåller. Abstract This report is based on a subset of a project that was made for the company SocialWorks. The project included working with web services. Through web services, web applications are able to communicate and send data to each other. When a web service is used, the user has to study the web service API. This report addresses a number of problems that might arise from the use of such web services and how these problems can be solved by creating a service class that is used as a middle layer. All API calls will be made through the service class and thus changes in the API will only require modification of code in the service class. As a result of this report a service class was created using the PHP framework Zend Framework to facilitate the use of Facebook's Graph API. By using the service class, the user does not have to study the Facebook Graph API in detail. A test application was created to test the service class functionality and manage test users provided by the Facebook Graph API.
3 Förord Denna rapport är en del av ett examensarbete på B-nivå för utbildningen Webbprogrammerare (120 hp) på Linnéunniversitetet. Rapporten grundar sig på en delmängd av ett projekt som utfördes åt uppdragsgivaren SocialWorks. Projektet innefattade bland annat att arbeta mot externa webbtjänster. Uppdragsgivaren vill inte dela syftet med projektet med allmänheten och därför är rapporten utformad på ett sådant sätt att den utelämnar de delar som uppdragsgivaren inte vill visa. Jag vill tacka Andreas Eriksson och Joacim Ståhl på SocialWorks samt min handledare Daniel Toll för all hjälp och stöd genom detta arbete.
4 Innehållsförteckning 1. Bakgrund Introduktion till problemområdet Problem vid användning av webbtjänster Avgränsningar Metod Terminologi Zend Framework Webbtjänst och API REST OAuth Facebook Graph API curl Testapplikation Krav för serviceklassens funktionalitet Krav från uppdragsgivarens projekt Krav för testanvändare Krav för testapplikation OAuth Databas för testanvändare och Facebooksidor Problem och lösningar för serviceklassen Metoddiskussion Resultat Lösningar för serviceklassen Inställningar i konfigurationsfil HTTP-metod och parametrar vid API-anrop Serviceklassens interface Fel vid API-anrop Testapplikationen Hämta app access token Lägga till testanvändare och Facebooksida OAuth Lista konton... 22
5 3.2.5 Redigera konto Uppdatera data för testanvändare Skapa vän-relation mellan testanvändare Posta logg-meddelande Nyhetsflöde och logg Visa inlägg och posta kommentar Slutsats Diskussion Serviceklassen Serviceklassens interface Testapplikation Förslag till vidareutveckling Källförteckning Elektroniska källor... 30
6 1. Bakgrund 1.1 Introduktion till problemområdet Genom webbtjänster kan webbaserade datorprogram kommunicera och skicka data till varandra. Reglerna för hur programmen ska kommunicera med varandra sätts upp genom ett så kallat API (Application Programming Interface). Då en webbtjänst ska användas behöver utvecklaren lära sig hur API:et ser ut och hur det ska användas. Projektet hos uppdragsgivaren SocialWorks innefattade bland annat att arbeta med PHP-ramverket Zend Framwork samt webbtjänsterna Twitter API och Facebook Graph API. Zend Framework tillhandahåller serviceklasser för ett antal API:er såsom Twitter, men tyvärr inget för Facebook. 1 Då projektet innebar att arbeta mot Facebooks Graph API utvecklades en serviceklass som var fristående i förhållande till uppdragsgivarens projekt. Denna serviceklass skulle därmed kunna återanvändas i andra projekt (klienter) som bygger på Zend Framework. Det är implementeringen av denna serviceklass som denna uppsats grundar sig på. Figur Serviceklass som ett lager mellan klient och Facebook Graph API 1 1
7 1.2 Problem vid användning av webbtjänster För att använda webbtjänster behöver utvecklaren sätta sig in i hur API:et för webbtjänsten ser ut. Nedan listas ett antal av de problem som användaren ställs inför då det gäller ett API som baseras på REST (Representational State Transfer): API-användaruppgifter (engelskans API credentials) för API:et (såsom APInyckel) behövs vid ett visst API-anrop. Vilka API-användaruppgifter behöver användas och hur ska dessa sparas, ändras och hämtas på ett enkelt sätt? API-anrop kan göras via olika HTTP-metoder, exempelvis GET eller POST. Dessutom skickas parametrar via URL:en och/eller via POST-parametrar. Hur kan man förenkla för klienten så att hon inte behöver hålla reda på vilken HTTP-metod som ska användas, samt hur parametrar ska skickas vid APIanrop? Ibland uppstår fel vid API-anrop och felhantering vid arbete med API:er kan vara problematiskt. Hur ska klienten veta att ett API-anrop går fel och hur ska hon få information om felet? API:er på webben utvecklas och förändras ofta, hur ska förändringar i API:et hanteras? Syftet med denna uppsats är att ta fram en serviceklass för Facebooks Graph API som ska förenkla eller undanröja de ovanstående problemen för användaren. 1.3 Avgränsningar Då Facebooks API tillhandahåller ett mycket stort antal funktioner implementerades inte allt i serviceklassen som togs fram. De funktioner som implementerades baserades på kraven från uppdragsgivarens projekt. Testning av serviceklassen skedde endast via testanvändare som kan skapas via Facebooks Graph API. Därmed testades inget mot skarpa Facebookanvändare. 2
8 2. Metod 2.1 Terminologi Zend Framework Uppdragsgivaren arbetar i Zend Framework och de ville därför att projektet skulle utvecklas i detta. Zend Framework är ett open source PHP-ramverk för objektorienterad programmering. 2 Ramverket använder sig av designmönstret MVC (Model View Controller) för att separera data och affärslogik från presentation Webbtjänst och API Genom en webbtjänst kan webbaserade datorprogram skicka data mellan varandra på motsvarande sätt som när en människa interagrerar med webbsidor. 4 Reglerna för hur programmen ska kommunicera med varandra sätts upp genom ett så kallat API (Application Programming Interface). 5 Då en en utvecklare ska nyttja en webbtjänst behöver hon därmed lära sig hur API:et ser ut och hur det ska användas REST REST (Representational State Transfer) är en mjukvaruarkitektur för kommunikation mellan datorprogram via HTTP-protokollet. Webbtjänster som baseras på REST använder följande HTTP-metoder för kommunikation mellan klient och server: 6 GET POST PUT DELETE
9 2.1.4 OAuth OAuth (Open Authentication) är en öppen standard för autentisering. Genom OAuth kan en användare låta en webbplats komma åt privata resurser (såsom bilder, videos, kontaktuppgifter) som finns sparade på en annan webbplats utan att behöva ge ut känslig information såsom användarnamn och lösenord. Då användaren godkänner en webbplats via OAuth skapas en token som ger webbplatsen tillgång till de privata resurserna. Varje token ger en specifik webbplats tillgång till specifika resurser under en bestämd tid Facebook Graph API Facebooks kärna består av dess social graph, det vill säga medlemmar och deras kopplingar till saker som de bryr sig om. Webbtjänsten Facebook Graph API representerar denna social graph genom objekt (exempelvis människor, bilder, evenemang och sidor) samt kopplingen mellan dem (exempelvis vän-relationer, inbjudningar och foto-taggningar). Figuren nedan illustrerar hur objekt och dess relationer kan se ut. Anders och Peter är två objekt av typen Facebookanvändare som har lagt till varandra som vänner och har därmed en vän-relation. Anders skriver sedan på Peters logg och tackar för gårdagens fest, därmed skapas ett meddelande-objekt där relationen till Anders är avsändare och relationen till Peter är mottagare. Figur Social Graph beståendes av objekt och relationer 7 4
10 Genom Facebook Graph API kan en applikation kommunicera med Facebook för att hämta och skicka information. 8 För att en applikation ska kunna ta del av all funktionalitet som Facebook Graph API har att erbjuda måste applikationen registreras hos Facebook. I samband med registreringen genereras följande API-användaruppgifter som är unika för den registrerade applikationen: App ID API Key App Secret Dessa API-användaruppgifter behövs vid olika anrop mot Facebook Graph API Testanvändare Facebook Graph API innehåller funktioner för att skapa och hantera testanvändare. Med testanvändare har utvecklaren full kontroll över användaren och kan därmed undvika att testa mot skarpa användare. Det finns dock vissa restriktioner för testanvändare jämfört med skarpa användare, bland annat då det gäller inloggning till Facebook. Testanvändaren loggas in genom en länk (unik för varje testanvändare) som genereras då testanvändaren skapas. Länken slutar gälla efter en inloggning eller 10 minuter, beroende på vad som sker först. Genom ett anrop till Facebooks Graph API som hämtar data om applikationens testanvändare förnyas alla testanvändares inloggningslänkar Användarlogin Facebook Graph API använder OAuth 2.0-protokollet för autentisering och auktorisering. Om en applikation exempelvis vill kunna läsa en viss Facebookanvändares nyhetsflöde eller skriva inlägg på någons logg i användarens ställe, måste användaren ge applikationen tillstånd till detta. Detta sker i tre steg: användarautentisering, applikationsauktorisering och applikationsautentisering
11 1. Användarautentisering säkerställer att användaren är den som hon uppger sig vara. 2. Applikationsauktorisering säkerställer att användaren får veta exakt vilka rättigheter som applikationen begär för att läsa användarens information, samt utföra åtgärder i användarens ställe. 3. Applikationsautentisering säkerställer för användaren att det är just denna applikationen som användaren ger rättigheter till och ingen annan. När dessa tre stegen är avklarade får applikationen en user access token i form av en sträng som senare används för att komma åt användarens information samt utföra åtgärder i användarens ställe. Nedan visas ett exempel på hur flödet för Facebook Graph API OAuth kan se ut: Figur Flödet för Facebook Graph API OAuth 1) Besökaren klickar på en länk för att godkänna applikationen och låta den ta del av hans privata resurser på Facebook. 2) Applikationen svarar med att skicka användaren till Facebook OAuth tillsammans med App ID, scope och callback URL som parametrar i URL:en. App ID är applikationens ID, scope är rättigheterna som applikationen ska fråga efter och callback URL är applikationssidan som användaren ska skickas tillbaka till efter att hon har godkännt applikationen. 6
12 3) Facebook visar OAuth-dialogen där det står vilka rättigheter som applikationen begär. 4) Användaren godkänner applikationen och skickas till den angivna callback URL:en hos applikationen med en code-parameter i URL:en. 5) Applikationen tar emot code-parametern. 6) Med hjälp av code-parametern kan applikationen nu begära en access token för användaren. Vid anropet för att hämta access token hos Facebook skickas förutom code-parametern även App ID och App Secret med som URLparametrar. 7) Facebook ger applikationen en access token med exempelvis följande värde: cd57c782f71f1b38c4035c IDV- 8Pf96eMD1WCiqZOCD32s0k 8) Med hjälp av den nya access token hämtar applikationen information om användaren såsom id, användarnamn, namn, med mera. 9) Informationen om användaren sparas i applikationen, exempelvis i en databas. 10) Applikationen renderar en ny sida för användaren där det exempelvis kan bekräftas att allt gick rätt till, eller eventuella felmeddelanden Applikationlogin För att exempelvis kunna hantera Facebooks testanvändare måste en app access token hämtas. Detta sker genom att göra ett anrop till Facebook Graph API tillsammans med App ID, App Secret samt grant_type-parameter curl Libcurl är ett bibliotek för att kommunicera mellan olika typer av servrar genom olika typer av protokoll. 12 Sedan PHP finns libcurl inbyggt i PHP-ramverket. För att förenkla användningen av curl-funktioner för PHP finns även ett mellanlager i PHPramverket som kallas PHP/CURL
13 Serviceklassen som togs fram använder PHP/CURL för att kommunicera med Facebook Graph API Testapplikation En testapplikation skulle tas fram för att både kunna testa serviceklassens funktionalitet samt för att hantera testanvändare. Testapplikationen skulle utvecklas i Zend Framework och använda sig av en MySQL-databas. 2.2 Krav för serviceklassens funktionalitet Endast en delmängd av funktionerna från Facebooks Graph API skulle implementeras i serviceklassen. Detta avsnitt beskriver vilka dessa funktioner var Krav från uppdragsgivarens projekt Serviceklassens grundfunktioner baserades på de krav som fanns från uppdragsgivarens projekt, vilket var följande: Generera en länk för användarlogin (OAuth). Hämta user access token för en Facebookanvändare. Hämta ett godtyckligt Facebookobjekt (exempelvis användare, meddelande, bild, grupp, sida med mera). Skriva en ny loggpost/status till en Facebookanvändare eller Facebooksida. Skriva en kommentar till ett Facebookobjekt. Hämta logg. Hämta nyhetsflöde. Hämta information om sidor som en Facebookanvändare är administratör för. 8
14 2.2.2 Krav för testanvändare Facebook Graph API tillhandahåller funktionalitet för att skapa testanvändare. För att kunna testa serviceklassens funktioner som togs upp i Krav från uppdragsgivarens projekt krävdes det testanvändare. Därmed utökades kraven för serviceklassen med följande: Hämta app access token för att kunna skapa testanvändare Skapa testanvändare Ta bort testanvändare Hämta data för alla testanvändare kopplade till den registrerade applikationen Skapa relationer mellan testanvändare 2.3 Krav för testapplikation OAuth För att kunna göra anrop till Facebooks Graph API i användarens ställe krävs att användaren har godkänt applikationen genom OAuth. Detta gäller även testanvändare, men då testanvändaren skapas kan utvecklaren bestämma om applikationen ska vara godkänd eller inte från början. 14 För att kunna testa serviceklassens OAuth-funktionalitet ska man i testapplikationen kunna välja om testanvändaren ska ha godkänt applikationen på förhand eller inte. En testanvändare som ej har godkänt applikationen kan därmed godkänna applikationen genom testapplikationens OAuth-funktionalitet Databas för testanvändare och Facebooksidor För att kunna hantera testanvändare på ett smidigt sätt ska applikationens testanvändare sparas i en MySQL-databas. Utöver testanvändare ska testapplikationen även spara Facebooksidor som en testanvändare är administratör för. Anledning till detta är att en Facebooksida ska kunna posta inlägg på sin egna logg, vilket var ett av kraven för uppdragsgivarens projekt. Samlingsnamnet för testanvändare och Facebooksidor som sparas i databasen är konton
15 Då en testanvändare skapas eller en Facebooksida hämtas och sparas genom testapplikationen, ska data från Facebooks Graph API sparas i databasen. Dessutom ska det sparas vilken typ kontot är (testanvändare eller Facebooksida) och om kontot ska vara favoritmarkerad eller ej. Det ska även finnas ett fält för att spara kommentarer för själva kontot. 2.4 Problem och lösningar för serviceklassen I avsnittet 1.2 Problem vid användning av webbtjänster togs det upp ett antal problem vid användande av API:er. Nedan förklaras hur serviceklassen skulle lösa dessa problem åt användaren. Vilka API-användaruppgifter behövs vid ett visst API-anrop och hur ska dessa sparas, ändras och hämtas på ett enkelt sätt? Vissa API-användaruppgifter behöver användas vid flertalet API-anrop. Serviceklassen måste hålla dessa inställningar på en samlad plats där det är enkelt att sätta samt ändra dessa inställningar. Genom instansiering av serviceklassen ska dessa inställningar läsas in automatiskt och därigenom kunna användas vid API-anrop. Vilken HTTP-metod ska användas vid API-anropet? REST API:er använder HTTP-metoderna GET, POST, PUT eller DELETE vid APIanrop. 15 Serviceklassen ska använda rätt HTTP-metod för API-anrop då klienten anropar en metod i serviceklassen. Därmed ska klienten aldrig behöva hålla reda på vilken HTTP-metod som ska användas. Ska parametrar till API-anropet skickas via URL:en och/eller via POST-parametrar? Klienten ska endast behöva skicka in parametrar till serviceklassens metoder utan kännedom om hur parametrarna skickas vid själva API-anropet, det ska serviceklassen sköta. Serviceklassens metoder ska även se till att det endast är giltliga parameternamn och värden som skickas vidare till API-anropet
16 Hur vet man om API-anropet går fel och hur får man information om vad som gått fel? Serviceklassen ska indikera om ett API-anrop har utförts korrekt eller om ett fel har uppstått. Då fel uppstår ska serviceklassen tillhandahålla klienten information om vad som har gått fel. Hur ska förändringar i API:et hanteras? Många API:er förändras med tiden. Eftersom all kod för API-anrop blir inkapslad i serviceklassen är det endast där som kod behöver modifieras då API:et förändras. Serviceklassens interface ska vara bestående så att klientens kod inte behöver påverkas då serviceklassen modifieras. 2.5 Metoddiskussion Serviceklassens metoder ska endast testas mot Facebooks testanvändare. Det kan finnas skillnader då det gäller skarpa Facebookanvändare. Testning mot skarpa användare var dock en avgränsning som gjordes. 11
17 3. Resultat 3.1 Lösningar för serviceklassen Följande avsnitt beskriver hur den framtagna serviceklassen löste de problem som togs upp i 1.2 Problem vid användning av webbtjänster Inställningar i konfigurationsfil API-användaruppgifterna App ID och App Secret används på många ställen i serviceklassen. För att enkelt kunna sätta och ändra dessa två värden sparas de i en konfigurationsfil som serviceklassen läser in då den instansieras. Därmed måste sökvägen till konfigurationsfilen sättas i konstruktorn för serviceklassen. I konfigurationsfilen sätts även en redirect URL (callback URL) samt scope. Redirect URL är den URL som användaren ska skickas till efter att hon har godkänt applikationen på Facebooks sida och scope är rättigheterna som applikationen ska fråga efter som användaren måste godkänna. Om man vill använda andra inställningar än de i konfigurationsfilen för en specifik instans av serviceklassen kan inställningarna skickas in i som parametrar vid instansiering av serviceklassen. Inställningarna måste då antingen vara i form av ett Zend_Config-objekt alternativt en array med parameternamnet som key och parametervärdet som value HTTP-metod och parametrar vid API-anrop Genom den framtagna serviceklassen behöver klienten inte veta vilken HTTP-metod som behövs för ett API-anrop. Dessutom behöver klienten inte veta hur parametrar ska sättas i samband med API-anropet. Nedan visas två exempel på hur serviceklassen uppfyller dessa kriterier. 12
18 Ny loggpost/status För att skapa en ny loggpost/status via Facebook Graph API behövs följande parametrar: Meddelande som ska skickas Facebook-id för mottagaren av meddelandet Access token för avsändaren av meddelandet Ponera att användaren Anders ska skicka meddelandet Tack för en trevlig fest på Peters logg. Eftersom det är Anders som ska skicka meddelandet behövs hans access token och för att kunna skicka till Peters logg behöver vi hans Facebook-id. Vi antar att Facebook-id är och access token är cd57c782f71f1b38c4035c IDV- 8Pf96eMD1WCiqZOCD32s0k. Detta API-anrop görs genom HTTP-metoden POST till URL:en med följande postparametrar: 16 message = Tack+f%C3%B6r+en+trevlig+fest access_token = cd57c782f71f1b38c4035c IDV-8Pf96eMD1WCiqZOCD32s0k Som vi ser krävs kännedom om vilken HTTP-metod som ska användas samt vilka parametrar som ska sättas i URL:en (Facebook-id) respektive skickas som postparmetrar (message och access_token). För klienten som använder serviceklassen behövs endast följande metod anropas: Parametern $message innehåller meddelandet, $id är Facebook-id:t för mottagaren och $accesstoken är access token för avsändaren. Själva API-anropet görs sedan i serviceklassens olika metoder. Därmed behöver klienten inte veta vilken HTTP-metod som ska användas samt hur olika parametrar ska skickas
19 Hämta logg För att hämta en Facebookanvändares logg via Facebook Graph API behövs access token tillhörandes en användare som har behörighet att se den önskade loggen. Det finns även frivilliga parametrar som kan användas för att filtrera eller modifiera den data som ska hämtas: limit, antal inlägg som ska hämtas offset, hämta inlägg från och med satt värde since, hämta inlägg från och med satt datum until, hämta inlägg till och med satt datum date_format, formatera alla datum med satt typ Ponera att vi ska hämta de 10 senaste logginläggen för år 2010 för Peter med Facebook- id samt access token a849dacb3bad5cbffce c0iophuil1xzks7ueksomz9dnuo. Detta API-anrop görs genom HTTP-metoden GET till följande URL: 794a8 49dacb3bad5cbffce c0iophuil1xzks7ueksomz9dnuo&limit=10&until= T23:59:59 Ovanstående API-anrop är likgiltig med följande: 794a849dacb3bad5cbffce c0iophuil1xzks7ueksomz9dnuo&limit=10&until= T23:59:59 Skillnaden mellan de två ovanstående anropen är att i det översta anropet används ett specifikt Facebook-id för att hämta rätt Facebookanvändares logg. Men eftersom access token är ett sätt att utföra API-anrop i en specifik Facebookanvändares ställe, kan vi använda me istället för Facebook-id:t och därigenom hämta loggen som tillhör Facebookanvändaren vars access token används. För att se loggen för en Facebookanvändare med Facebook-id:t , med samma access token som ovan kan följande API-anrop göras: 14
20 794a8 49dacb3bad5cbffce c0iophuil1xzks7ueksomz9dnuo Detta API-anrop förutsätter att Facebookanvändaren med den angivna access token har behörighet att se loggen som tillhör Facebookanvändaren med id , annars kommer logginläggen inte kunna hämtas. Då logginlägg hämtas fås även URL:er för att hämta föregående samt nästa hop logginlägg baserade på tiden för det första respektive sista logginlägg som hämtades. Dessa URL:er används för paging. Om parametrarna limit och date_format användes vid hämtningen, finns även de med i URL:erna. 17 För klienten som använder serviceklassen görs ovanstående API-anrop genom att kalla på följande metod: Parametrarna har följande betydelse: $accesstoken är access token $params ska vara en array innehållandes de frivilliga parametrarna där key är namnet på parametern och value är parametervärdet $id är Facebook-id:t för Facebookanvändaren vars logg ska hämtas $url är en URL som kan användas för paging. Om $id utelämnas eller är NULL kommer metoden automatiskt att använda me för att hämta logginlägg tillhörandes Facebookanvändaren med angiven access token. Då $params sätts görs en validering för att endast låta giltliga parameternamn samt värden nå själva API-anropet. Om $url är satt kommer de övriga parametrarna att ignoreras, vilket är smidigt vid pagning. Ifall både $accesstoken och $url är NULL kommer ett undantag att kastas eftersom ett giltligt API-anrop inte kommer att kunna göras
21 3.1.3 Serviceklassens interface Med största sannolikhet kommer Facebooks Graph API att förändras i framtiden. Detta innebär att koden för API-anrop kommer att behöva anpassas till dessa förändringar. En av de viktigaste uppgifterna med serviceklassen är att interfacet mot klienten inte ska förändras då förändringar sker i API:et. Ändring av kod ska enbart behöva göras i serviceklassen och klienten ska i sin tur endast behöva uppdatera själva serviceklassen för att anamma förändringar i API:et. Från klientens perspektiv ser interfacet för ett API-anrop genom serviceklassen ut enligt följande: Alla API-anrop via serviceklassen har ovanstående interface där ett API-anrop returnerar true eller false beroende på om API-anropet innehåller några fel. Om inga fel uppstått kan data hämtas genom getdata(), annars hämtas felen med geterrors(). Data från API-anropet sparas i den privata variabeln $_data i serviceklassen och raderas i samband med metodanropet getdata() om inte den första parametern sätts till FALSE. Motsvarande privata variabeln för fel är $_error och rensas vid metodanropet geterrors() om inte första parametern sätts till FALSE. Därmed kan samma instans av serviceklassen användas vid flera API-anrop och gamla fel från tidigare API-anrop stör inte valideringen av det nya API-anropet. 16
22 3.1.4 Fel vid API-anrop Då ett API-anrop görs kan olika typer av fel uppstå, exempelvis: Det går inte att nå Facebooks Graph API. Svaret från API-anropet kan inte tas emot. En felaktig URL används. Felaktiga parametrar används. Den angivna access token har inte rättigheter att utföra API-anropet. Den angivna access token är inte giltlig. Alla API-anrop i serviceklassen görs genom PHP/CURL och returnerar HTTPstatuskod 200 om API-anropet utförs korrekt. Om det är någon annan statuskod sparas följande information om felet i den privata variabeln $_errors: HTTP-statuskod curl error code (error code för curl) curl error message (curls felmeddelande i klartext) Om det görs ett felaktigt API-anrop till Facebooks Graph API och ett svar med felmeddelande kan tas emot, sparas även följande information om felet i $_errors: Typ av fel från Facebook Graph API Felmeddelande från Facebook Graph API Klienten kan sedan anropa metoden geterrors() för att hämta informationen från den privata variabeln $_errors. 17
23 3.2 Testapplikationen Följande avsnitt visar hur resultatet för testapplikationen såg ut samt vilka funktioner som implementerades Hämta app access token För att kunna hantera testanvändare genom testapplikationen krävs en app access token. Testapplikationen har därför funktionalitet för att hämta app access token och spara denna i sessionen. Figur Hämta app access token Figur Efter att app access token har hämtats 18
24 3.2.2 Lägga till testanvändare och Facebooksida För att lägga till ett nytt konto får man först välja om det är en testanvändare som ska skapas eller om det är en Facebooksida som ska sparas. Figur Lägg till en ny testanvändare eller Facebooksida Lägga till testanvändare Om en testanvändare ska läggas till finns det alternativ för om testanvändaren ska ha applikationen godkänd i förväg eller ej. Om applikationen inte är godkänd måste testanvändaren godkänna applikationen genom OAuth innan testapplikationen kan göra anrop till Facebooks Graph API i testanvändarens ställe. Figur Skapa en ny testanvändare 19
25 Lägga till Facebooksida Om en Facebooksida ska läggas till visas först en lista på de testanvändare som är administratör för för minst en Facebooksida. För att gå vidare till nästa steg ska en testanvändare väljas. Figur Välj testanvändare som är administratör över Facebooksidan som ska läggas till I nästa steg visas alla Facebooksidor som den valda testanvändaren är administratör för. Här kan användaren välja vilka Facebooksidor som ska läggas till i databasen. Figur Lägg till en ny Facebooksida som tillhör den valda testanvändaren 20
26 3.2.3 OAuth För testanvändare som ej har godkänt applikationen kan man göra detta genom OAuth. Om detta görs skickas testanvändaren till Facebook för godkännande och skickas sedan tillbaka till testapplikationen där den nya datan för testanvändaren sparas i databasen. Figur Användare ska godkänna applikationen Figur Användare skickas till Facebook för att godkänna applikationen Figur Efter att användaren har godkänt applikationen hos facebook visas ett meddelande om att applikationen nu är godkänd 21
27 3.2.4 Lista konton På denna sida listas alla konton som finns sparade i databasen, uppdelade på om de är favoritmarkerade eller ej. Om kontot är en Facebooksida finns det länkar till att visa inlägg i loggen samt redigering av kontot. Testanvändarna har förutom de nämnda länkarna även en länk till att visa inlägg i nyhetsflödet samt en länk för att logga in på Facebook. Figur Lista konton som finns sparade i databasen 22
28 3.2.5 Redigera konto Här visas ytterligare information för det valda kontot och det finns även möjlighet för att redigera kontot genom att lägga till kommentarer eller att markera det som favorit. Det går även att ta bort kontot. Om det är en Facebooksida som tas bort raderas den endast från databasen, men existerar fortfarande på Facebook. Om det däremot är en testanvändare som tas bort raderas den både från databasen och Facebook och upphör därmed att existera. Figur Redigera information om konto för testanvändare 23
29 3.2.6 Uppdatera data för testanvändare Denna sida kommunicerar med Facebook Graph API och hämtar samt sparar ner uppdaterad information för alla testanvändare kopplade till applikationen. Den viktigaste informationen som uppdateras är inloggningslänken. Denna länk blir som tidigare nämnt ogiltlig efter första inloggningen alternativt efter 10 minuter och behöver därför uppdateras ofta. Figur Innan uppdaterad information om testanvändare hämtas från Facebook Figur Efter att uppdaterad information om testanvändare har hämtats från Facebook och uppdaterats i databasen visas den data som hämtades från Facebook 24
30 3.2.7 Skapa vän-relation mellan testanvändare Exempelvis för att två testanvändare ska kunna skriva till varandra krävs det att de är vänner på Facebook. Denna sida används för att skapa en vän-relation mellan två testanvändare. Figur Skapa en vän-relation mellan testanvändare Posta logg-meddelande På denna sidan kan man posta till en testanvändares eller Facebooksidas logg. Man får välja från och till vilket konto som meddelandet ska postas. Figur Skapa ett nytt inlägg på en logg 25
31 3.2.9 Nyhetsflöde och logg Testapplikationen har en sida för att visa nyhetsflödet samt en sida för att visa loggen för ett valt konto. Facebooksidor har inget nyhetsflöde, utan endast logg. Inläggen hämtas direkt via Facebooks Graph API utan att sparas i databasen. Figur Testanvändares logg 26
32 Visa inlägg och posta kommentar Då användaren klickar på att visa mer detaljer för en post på nyhetsflödet eller loggen kommer hon till denna sidan där all information om posten hämtas via Facebooks Graph API. Här kan användaren även posta en kommentar till inlägget från en vald testanvändare. Figur Visa ett specifikt inlägg från en testanvändares logg med kommentarsfunktion 27
33 4. Slutsats 4.1 Diskussion Serviceklassen De problem som togs upp i samband med användning av Facebooks Graph API löstes på ett tillfredsställande sätt genom serviceklassens implementation. API-anropen sköts av serviceklassens metoder och klienten behöver inte ha någon direkt kunskap om hur detta sker. Därmed kan framtida projekt som ska använda Facebooks Graph API effektiviseras genom att använda den framtagna serviceklassen Serviceklassens interface Serviceklassens interface ska inte förändras även om det sker förändringar i Facebooks Graph API. Uppdatering av kod för anpassning av förändringar i API:et ska endast ske i serviceklassen och klienten ska inte behöva göra något mer än att byta ut serviceklassen. Det finns dock inget interface som kan garantera att klienten aldrig kommer att behöva ändra ytterligare kod utöver den som finns i serviceklassen. Vi kan exempelvis tänka oss ett scenario där Facebook Graph API ändrar OAuth-flödet helt och hållet och användandet av access token ersätts med något helt annat. I ett sådant scenario skulle även klienten behöva göra förändringar i sin kod Testapplikation Genom testapplikationen kunde funktionaliteten i serviceklassen testas via testanvändare. Att använda testanvändare istället för skarpa användare var ett effektivt sätt att testa på. Utvecklaren har nämligen full kontroll över testanvändaren och kan exempelvis göra den till administratör för en Facebooksida, skapa relationer, fylla loggen med inlägg av olika typer med mera. En av testapplikationens viktigaste uppgifter var att hantera testanvändare kopplade till applikationen. Därmed kan testapplikationen återanvändas i andra projekt för att hantera testanvändare tillhörande en annan applikation. Det enda som krävs är att modifiera inställningarna i konfigurationsfilen. 28
34 4.2 Förslag till vidareutveckling På grund av projektets begränsade tid implementerades endast de absolut nödvändigaste funktionerna från Facebook Graph API för att uppfylla kraven för uppdragsgivarens projekt. Fler funktioner från API:et skulle kunna implementeras i framtiden. Testapplikationen testade endast serviceklassens metoder mot Facebooks testanvändare. Ytterligare tester skulle kunna göras mot skarpa användare för att försäkra sig om att metoderna även fungerar för dessa användare. Då Facebook Graph API förändras i framtiden krävs att serviceklassen uppdateras för att hålla klassens funktionaliteten aktuell. 29
35 5. Källförteckning 5.1 Elektroniska källor curl. libcurl - the multiprotocol file transfer library. Tillgänglig www: [ ] curl. PHP/CURL -- using libcurl with PHP. Tillgänglig www: [ ] Facebook developers. Authentication. Tillgänglig www: [ ] Facebook developers. Graph API. Tillgänglig www: [ ] Facebook developers. Test Users. Tillgänglig www: [ ] Wikipedia. Application Programming Interface. Tillgänglig www: [ ] Wikipedia. OAuth. Tillgänglig www: [ ] Wikipedia. Representational State Transfer. Tillgänglig www: [ ] Wikipedia. Web service. Tillgänglig www: [ ] Zend Framework. About Zend Framework. Tillgänglig www: [ ] 30
36 Zend Framework. Introduction. Tillgänglig www: [ ] Zend Framework. Zend Framework Components. Tillgänglig www: [ ] 31
37 Växjö / Kalmar Tel dfm@lnu.se Lnu.se
Services + REST och OAuth
Services + REST och OAuth Syftet med Services Skapa ett Drupal API för att exponera webb- API:er. Officiella versionen - Create a unified Drupal API for web services to be exposed in a variety of different
Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document
Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document Användarhandledning inloggning Logga in Gå till denna webbsida för att logga in: http://csportal.u4a.se/
Instruktion för integration mot CAS
IT-enheten Instruktion för integration mot CAS Per Hörnblad Instruktion 2010-10-29 Sid 1 (7) Instruktion för integration mot CAS Projektnamn Instruktioner för Integration mot CAS Fastställt av Per Hörnblad
Utkast/Version (8) Användarhandledning - inrapportering maskin-till-maskin
Utkast/Version Sida 2.0 1 (8) 2017-05-12 Användarhandledning - inrapportering maskin-till-maskin 2 (8) Innehåll 1. Rapportering till VINN eller KRITA... 3 1.1 Allmänt... 3 1.2 Terminologi... 3 2. Hämta
Innehåll. Dokumentet gäller från och med version 2014.3 1
Innehåll Introduktion... 2 Före installation... 2 Beroenden... 2 Syftet med programmet... 2 Installation av IIS... 2 Windows Server 2008... 2 Windows Server 2012... 6 Installation av webbapplikationen
Att koppla FB till AD-inloggning
Att koppla FB till AD-inloggning Helen Ekelöf 16. nov. 2017 (uppdaterad 22.maj 2018) SOKIGO Box 315 731 27 Köping +46 (0)8 23 56 00 info@sokigo.com http://www.sokigo.com Org.nr: 556550-6309 INNEHÅLLSFÖRTECKNING
Webbtjänster med API er
Webbtjänster med API er Mål med lektionen! Titta på Oauth Titta på OpenID Titta på OWASP TOP 10 Vad lektionen omfattar Vad är Oauth? Vad är OpenID? Vad är OWASP? Oauth2? Oauth2 är ett autentiserings ramverk
Laboration 2 RESTful webb-api
Webbteknik II, 1DV449 Laboration 2 RESTful webb-api Author: John Häggerud & Johan Leitet Semester: HT 2011 Course code: 1DV449 Inledning I denna laboration är det tänkt att Du ska skriva ett eget webb-api
Vitec Connect. Teknisk beskrivning REVIDERAT SENAST: VITEC. VITEC Affärsområde Mäklare
VITEC Vitec Connect Teknisk beskrivning REVIDERAT SENAST: 2016-02-10 VITEC Affärsområde Mäklare www.vitec.se/maklare info.maklare@vitec.se GÖTEBORG: REDEGATAN 1 B, 426 77 V. FRÖLUNDA VÄXEL: 031-360 61
Webbplats med Zend Framework
Examensarbete Webbplats med Zend Framework Pontus Karlsson 2010-05-30 Ämne: Datavetenskap Nivå: B Kurskod: 1DV40E Abstrakt I den här rapporten skapas en applikation med Zend Framework för att undersöka
ADO.NET Murach Kapitel 17-20
Databaser och C# ADO.NET Murach Kapitel 17-20 2013-01-30 1 Winstrand Development Databas ADO.NET Är en del av.net ramverket och tillhandahåller delar för att kommunicera med olika datakällor. Dessa kan
iphone app - Users Net2 AN1116-SE Allmänt Starta Appen
iphone app - Users Allmänt Denna app finns tillgänglig hos Apple App Store. Appen fungerar på alla iphone eller ipad med ios 5.1 eller högre. Starta Appen När Appen laddats ner och installerats finns ikonen
Översikt. Installation av EasyPHP 1. Ladda ner från http://www.easyphp.org/ Jag använder Release 5.3.4.0 2. Installera EasyPHP.
Laboration 1 Översikt 1. Att komma igång med laborationsmiljön a. installera Aptana Studio 3 b. Installera EasyPHP 2. Testa lite programmering a. Testa enkla uppgifter b. Testa automatiskt 3. Skapa inloggningsformulär
SLUTRAPPORT WEBBPROJEKT 1
SLUTRAPPORT WEBBPROJEKT 1 Kostregistrering 30 mars 2012 Webbprojekt 1 1DV411 Institutionen för datavetenskap, fysik och matematik Linnéuniversitetet Ella Källman - ella@kallman.se Martin Kuoppa - martin@duofy.com
TDDD80. Mobila och sociala applikationer Introduktion HTTP,SaaS. Anders Fröberg Institutionen för Datavetenskap (IDA)
TDDD80 Mobila och sociala applikationer Introduktion HTTP,SaaS Anders Fröberg Institutionen för Datavetenskap (IDA) Internet Internet är världens största datornätverk och ett system för enkel och effektiv
LEX INSTRUKTION LEX LDAP
LEX INSTRUKTION LEX LDAP Innehållsförteckning LEX INSTRUKTION LEX LDAP... 1 1 INLEDNING... 1 2 INSTALLATION... 2 3 LEXLDAPSERVICE - KLIENTEN... 3 3.1 HUVUDFÖNSTER... 3 3.2 INSTÄLLNINGAR... 4 3.2.1 Lex...
Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.
Informationsinfrastruktur 7.5 hp Mattias Nordlindh Inledning Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer. Dokumentet består av
MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR
MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR I följande dokument hittar ni information om hur ni administrerar er nya hemsida. Manualen går endast igenom grundläggande administration. För mer avancerad redigering
Introduktion till integrering av Schenkers e-tjänster. Version 2.0
Introduktion till integrering av Schenkers e- Version 2.0 Datum: 2008-06-18 Sida 2 av 8 Revisionshistorik Lägg senaste ändringen först! Datum Version Revision 2008-06-18 2.0 Stora delar av introduktionen
Beijer Electronics AB 2000, MA00336A, 2000-12
Demonstration driver English Svenska Beijer Electronics AB 2000, MA00336A, 2000-12 Beijer Electronics AB reserves the right to change information in this manual without prior notice. All examples in this
CMS, optimerade för programmerare Eller hur kan ett sådan skapas.
Examensarbete CMS, optimerade för programmerare Eller hur kan ett sådan skapas. David Strömbom 2011-05-20 Ämne: Datavetenskap Nivå: B Kurskod: 1DV40E Abstrakt Denna rapport fokuserar på att undersöka några
Säkra pausade utskriftsjobb. Administratörshandbok
Säkra pausade utskriftsjobb Administratörshandbok April 2013 www.lexmark.com Innehåll 2 Innehåll Översikt... 3 Konfigurera säkra pausade utskriftsjobb... 4 Konfigurera och säkra programmet...4 Använda
Överföring av filer med Zendto v 1.1. stora filer som inte kan skickas via e-post konfidentiella uppgifter som inte kan skickas via okrypterad e-post
Folkhälsans ZendTo ZendTo är till för enkel och säker överföring av stora filer som inte kan skickas via e-post konfidentiella uppgifter som inte kan skickas via okrypterad e-post ZendTo används via webbläsare,
Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.
Schenker har interna system som handhar information som är av intresse för våra kunder/partners. Idag finns ett flertal av dem tillgängliga via Internet, sk Online-tjänster. Dessa erbjuder inte bara hämtning
Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås
Schenker Privpak AB Interface documentation for web service packageservices.asmx 2012-09-01 Version: 1.0.0 Doc. no.: I04304b Sida 2 av 7 Revision history Datum Version Sign. Kommentar 2012-09-01 1.0.0
Objektsamlingar i Java
1 (6) Objektsamlingar i Java Objektorienterad programmering 3 Syfte Att ge träning i att använda objektsamlingar i Java. Mål Efter övningen skall du kunna använda objektsamlingsklasserna ArrayList och
Att koppla FB till AD-inloggning
Att koppla FB till AD-inloggning Helen Ekelöf 16. nov. 2017 (uppdaterad 10.april 2018) SOKIGO Box 315 731 27 Köping +46 (0)8 23 56 00 info@sokigo.com http://www.sokigo.com Org.nr: 556550-6309 INNEHÅLLSFÖRTECKNING
Designmönster i Javascript
C-uppsats i Datavetenskap Designmönster i Javascript Författare: Fredrik Johansson Handledare: Martin Blomberg Termin:VT11 Kurskod: 2DV40E Abstrakt Programmeringsspråket Javascript har sina brister som
Decentraliserad administration av gästkonton vid Karlstads universitet
Datavetenskap Opponent(er): Markus Fors Christian Grahn Respondent(er): Christian Ekström Per Rydberg Decentraliserad administration av gästkonton vid Karlstads universitet Oppositionsrapport, C/D-nivå
Filleveranser till VINN och KRITA
Datum Sida 2017-04-25 1 (10) Mottagare: Uppgiftslämnare till VINN och KRITA Filleveranser till VINN och KRITA Sammanfattning I detta dokument beskrivs översiktligt Vinn/Kritas lösning för filleveranser
Manuell import till Lime Pro
Manuell import till Lime Pro Ibland kan det vara nödvändigt att göra en manuell import till Lime Pro, t.e.x. om en fil inte kan importeras och man behöver mer information för att felsöka. I den vanliga
Metoder för verifiering av användare i ELMS 1.1
Metoder för verifiering av användare i ELMS 1.1 2012-12-21 Kivuto Solutions Inc. [KONFIDENTIELLT] INNEHÅLLSFÖRTECKNING ÖVERSIKT...1 VERIFIERINGSMETODER...2 IUV (Integrated User Verification)...2 Shibboleth
JavaScript in SharePoint and not just for Apps. Wictor Wilén
JavaScript in SharePoint and not just for Apps Wictor Wilén Wictor Wilén Agenda Varför JavaScript? JavaScript bibliotek SharePoint JS bibliotek JavaScript Client Side Object Model (JSOM/CSOM) REST Client
Användarhandbok. Trio Visit Web. Trio Enterprise 4.1
Användarhandbok Trio Visit Web Trio Enterprise 4.1 COPYRIGHT NOTICE: No part of this document may be reproduced, distributed, stored in a retrieval system or translated into any language, including but
1ME323 Webbteknik 3 Lektion 6 API. Rune Körnefors. Medieteknik Rune Körnefors
1ME323 Webbteknik 3 Lektion 6 API Rune Körnefors Medieteknik 1 2019 Rune Körnefors rune.kornefors@lnu.se Agenda API (Application Programming Interface) Mashup Flickr API Google Maps API Labb 6 2 API (Application
2.1 Installation of driver using Internet Installation of driver from disk... 3
&RQWHQW,QQHKnOO 0DQXDOÃ(QJOLVKÃ'HPRGULYHU )RUHZRUG Ã,QWURGXFWLRQ Ã,QVWDOOÃDQGÃXSGDWHÃGULYHU 2.1 Installation of driver using Internet... 3 2.2 Installation of driver from disk... 3 Ã&RQQHFWLQJÃWKHÃWHUPLQDOÃWRÃWKHÃ3/&ÃV\VWHP
IT-system. BUP Användarmanual
IT-system Användarmanual Innehållsförteckning 1. Att komma igång med... 1 1.1 Installera... 1 1.1.1 Byt databas... 1 1.1.2 Behörighet att byta databas... 2 1.2 Logga in... 3 1.2 Inloggad... 3 1.3 Logga
Webbteknik II. Föreläsning 5. Restless farewell. John Häggerud, 2011
Webbteknik II Föreläsning 5 Restless farewell HTTP Request HTTP verbs (methods): GET, POST, HEAD, DELETE, PUT, OPTIONS, TRACE, CONNECT http://www.w3.org/protocols/rfc2616/rfc2616-sec9.html variable=value&variable2=value2
REST API Generellt https POST UTF-8 API_key JSON
REST API Jojka är utrustat med ett kraftfullt API. Utöka din applikation till att även kommunicera med Jojka. Det är väldigt enkelt att komma igång. Här nedan följer en teknisk dokumentation av alla funktioner.
PREMIUM COMAI WEBBKALENDER
1 PREMIUM COMAI WEBBKALENDER 2.0 ADMINISTRATÖR utvecklar och säljer anpassningsbara smartphone 2 Innehåll 1 Inledning... 3 1.1 Terminologi... 3 1.2 Teknisk kravspecifikation... 4 1.3 Behörigheter... 4
PROGES PLUS THERMOSCAN RF. Instruktionsmanual V. 061115
ThermoScan RF användarinstruktioner 1 PROGES PLUS THERMOSCAN RF Instruktionsmanual V. 061115 Viktigt! Den här manualen innehåller ett antal lösenord som endast är avsedda för administratörerna. Glöm inte
Webbtjänster med API er
Webbtjänster med API er Mål med lektionen! Veta kursmålen. Lite grunder om WCF Vem är jag? Mitt namn är Björn Jönsson och jobbar på Tahoe Solutions, ni når mig via mail: bjorn.jonsson@tahoesolutions.se
Vindbrukskollen Nationell databas för planerade och befintliga vindkraftverk Insamling och utveckling
Vindbrukskollen Nationell databas för planerade och befintliga vindkraftverk Insamling och utveckling Slutrapport Innehållsförteckning Innehållsförteckning... 1 Sammanfattning... 2 Summary... 2 Bakgrund...
Alternativet är iwindows registret som ni hittar under regedit och Windows XP 32 bit.
TNT ExpressShipper installation. Om ni redan har en ExpressShipper installation på företaget behöver ni först ta reda på vilken version som är installerad och sökvägen till databasen. Versionen ser ni
Om inte denna rekommendation efterföljs kan vi tyvärr inte ge några garantier för att vi kan supportera de problem som då kan uppstå.
MAGENTO 3.3.4.5 SVEAWEBPAY MAGENTO INSTALLATION INFORMATION Detta dokument är framtaget i syfte att beskriva hur SveaWebPays Betalmodul för Magento (version 3.3.4.5) uppgraderas, installeraras och konfigureras.
Garantianspråk. Manual
2014 Garantianspråk Manual Innehåll Åtkomst till systemet... 2 Inloggning... 2 Glömt lösenordet... 3 Registrering... 4 Garantianspråk... 6 Startsida... 6 Navigering... 6 Garantianspråk konsument... 7 Mina
MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR
MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR I följande dokument hittar ni information om hur ni administrerar er nya hemsida. Manualen går endast igenom grundläggande administration. För mer avancerad redigering
LUPstudentpapers. Manual Reviewer
LUPstudentpapers Manual Reviewer 1:1 10/3 2009 Manual Reviewer Om du vill granska uppsatser vid din institution men ännu inte är registrerad som Reviewer, vänligen kontakta Publicera@lub.lu.se. Om du redan
FLEX Personalsystem. Uppdateringsanvisning
FLEX Personalsystem Uppdateringsanvisning Innehållsförteckning UPPDATERING... 3 Allmänt... 3 Förberedelser... 3 Informera om uppdatering... 3 Ladda hem uppdateringsfiler... 4 Att observera vid uppdatering...
tentaplugg.nu av studenter för studenter
tentaplugg.nu av studenter för studenter Kurskod Kursnamn UU-76062 Inledande programmering i Java Datum 2014-07-13 Material Tentamen Kursexaminator Betygsgränser Tentamenspoäng G 30; VG 36 40 (VG) Övrig
Uppdatera Mobilus Professional till version 3.2.1. * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.
Uppdatera Mobilus Professional till version 3.2.1 Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. Mobilus Digital Rehab AB * Filen MP.exe (Mobilus programmet) får inte användas
MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR
MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR I följande dokument hittar ni information om hur ni administrerar er nya hemsida. Manualen går endast igenom grundläggande administration. För mer avancerad redigering
2014-2015 Alla rättigheter till materialet reserverade Easec
1 2 Innehåll Introduktion... 3 Azure Client SDK Libraries... 4 Översikt: Azure Client Libraries... 5 Azure SDK... 6 Azure SDK (forts.)... 7 Azure SDK (forts.)... 8 Cloud Services... 10 Cloud Services...
Extern åtkomst Manual för leverantör
Extern åtkomst Manual för leverantör 1. Webbresurserna i portalen körs i klientlöst läge och kräver ingen klient för att starta. Däremot krävs det att Citrix Receiver finns installerat om man ska köra
GEOSECMA FASTIGHET...
RELEASE NOTES - GEOSECMA for ArcGIS 10.5.1 Service Pack 5 RELEASE NOTES - GEOSECMA for ArcGIS 10.5.1 Service Pack 5 Innehållsförteckning 1. GEOSECMA BAL... 2 1.1. LÄGENHETSINFORMATION... 2 1.2. BRISTER...
Felhantering TDDD78, TDDE30, 729A
Felhantering TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Felhantering 2 Ofta antar vi att allt ska fungera Alla filer vi behöver finns går att öppna Tillräckligt mycket minne finns Servrar som
Snabbguide webbhotellstjänster v 1.0
Snabbguide webbhotellstjänster v 1.0 Innehållsförteckning 1.0 Allmänt...3 2.0 Översikt kontrollpanel...4 2.1 Desktop...5 2.2 Home...6 3.0 Domäninställningar...7 3.1 Ladda upp dina filer information om
Om inte denna rekommendation efterföljs kan vi tyvärr inte ge några garantier för att vi kan supportera de problem som då kan uppstå.
MAGENTO 3.3.4.4 SVEAWEBPAY MAGENTO INSTALLATION INFORMATION Detta dokument är framtaget i syfte att beskriva hur SveaWebPays Betalmodul för Magento (version 3.3.4.4) uppgraderas, installeraras och konfigureras.
Metoder (funktioner) Murach s: kap Winstrand Development
(funktioner) Murach s: kap 6 2013-01-23 1 Winstrand Development Metoder I C# kan vi dela in koden i block en kodsekvens ska köras likadant på flera ställen i applikationen. Detta block kallas för en metod
Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.
Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen
API Notera HTTPS POST msg UTF-8. API_key JSON Mobilnummer format 1. Skicka ett SMS till specifikt nummer POST parametrar: from msg API_key Exempel:
API Jojka är utrustat med ett kraftfullt API. Utöka din applikation till att även kommunicera med Jojka. Det är väldigt enkelt att komma igång. Här nedan följer en presentation av alla funktioner. Notera
725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack
725G61 - Laboration 7 Implementation av ett API Johan Falkenjack December 13, 2013 1 Inledning Hittills i kursen har vi tittat på grundläggande programmering och grundläggande objektorientering. I den
Content Management System. Publiceringssystem
Content Management System Publiceringssystem Vad är ett Content Management System (CMS)? Ett verktyg för att separera innehåll från presentation Skapa webbsidor utan att kunna html Låt många skapa sidor
Gissa det hemliga talet
Laborationsanvisning Gissa det hemliga talet Steg 2, laborationsuppgift 1 Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Upphovsrätt för detta verk Detta verk är framtaget i
Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document
Programutvecklingsprojekt 2003-04-24 Projektgrupp Elvin Detailed Design Document Björn Engdahl Fredrik Dahlström Mats Eriksson Staffan Friberg Thomas Glod Tom Eriksson engdahl@kth.se fd@kth.se d94-mae@nada.kth.se
iphone app - Reports Net2 AN1114-SE Allmänt Starta Appen
iphone app - Reports Allmänt Denna app finns tillgänglig hos Apple App Store. Appen fungerar på alla iphone eller ipad med ios 5.1 eller högre. Starta Appen När Appen laddats ner och installerats finns
PHP - Fortsättning. PHP och MySQL
PHP - Fortsättning Copyright 2016 Mahmud Al Hakim mahmud@dynamicos.se www.webacademy.se PHP och MySQL Skapa en databasbaserad telefonkatalog Steg 1 Skapa en MySQL databas. Steg 2 Skapa en tabell i denna
Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor
http://w3.msi.vxu.se/multimedia Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor Rune Körnefors Innehåll Variabler i JavaScript
INSTRUKTION FÖR HUR MAN SKAPAR ETT
INSTRUKTION FÖR HUR MAN SKAPAR ETT ANVÄNDARKONTO PÅ FK-FOCUS FORUM Datum: 2012-11-26 Sida 1 av 15 Upprättad av: Henry Fredrikson Inledning Nedan beskrivs hur man skapar ett användarkonto på FK-Focus Forum.
Fr om version ser inloggningen med HogiaID lite annorlunda ut i Hogias Ekonomisystem
Fr om version 2018.2 ser inloggningen med HogiaID lite annorlunda ut i Hogias Ekonomisystem Vad är ett HogiaID? Ett Hogia Identity (HogiaID) är en unik identitet för en användare av ett eller flera Hogia-system.
Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar
Webbprogrammering. Sahand Sadjadee
Webbprogrammering Sahand Sadjadee Agenda Webb The World Wide Web (WWW) is a network of online content that is formatted in HTML and accessed via HTTP. The term refers to all the interlinked HTML pages
Vis it. jquery jquery används lite överallt i appen på olika sätt. Det främsta användningsområdet är vid selektering och manipulering av HTML element.
Vis it Introduktion Vi har skapat den webbaserade appen Vis it som bygger på att användare kan ta bilder på och lägga upp sevärdheter via sin mobiltelefon. Dessa sevärdheter är positionsbaserade vilket
Innehåll. Installationsguide
Innehåll Innehåll... 2 Förberedelser... 3 Rättigheter... 3 Installera programmen... 3 Konfiguration av databas... 5 Installera databasserver... 5 Konfigurera en databas på en befintlig databasserver...
Manual. Att skapa lokala Facebooksidor
Manual Att skapa lokala Facebooksidor Skapa en Facebooksida 1. Logga in på Facebook med din vanliga, privata inloggning. När du har skapat sidan kommer du alltid att publicera på sidan som just sida, och
LVDB i GEOSECMA. Innehåll. Inledning. Produkt: GEOSECMA Modul: LVDB Skapad för Version: Uppdaterad:
Produkt: GEOSECMA Modul: LVDB Skapad för Version: 10.4.1 Uppdaterad: 2019-05-21 LVDB i GEOSECMA Innehåll Inledning... 1 Hämta XML från NVDB... 2 Full LVDB-import... 3 Inkentell LVDB-import... 4 NVDB inställningar...
Följ dessa steg för att försäkra dig om att ditt konto aktiveras på rätt sätt. Aktivera PayPal i Jetshops gränssnitt
PAYPAL / JETSHOP Aktiveringsinstruktioner för PayPal-kunder Så här aktiverar du PayPal i din webbshop För att börja ta emot PayPal-betalningar behöver du öppna ett företagskonto hos PayPal (Del 1). Alla
teknisk manual Direktbetalning handelsbanken.se/e-handel
Direktbetalning handelsbanken.se/e-handel Innehållsförteckning Beskrivning av tjänsten...3 Direktbetalning...4 Från företaget till Handelsbanken...4 Från Handelsbanken till företaget...6 Betalningskontroll...8
Webbtjänster med API er
Webbtjänster med API er Mål med lektionen! En lite djupare inblick i RESTfulla tjänster Vad lektionen omfattar RESTful Services Överblick SOAP kan vara lite overkill för vissa specifika web service scenarion.
Lathund Blogg hos moobis.se (skapad av Marie Linder marielinder.se)
Lathund Blogg hos moobis.se (skapad av Marie Linder marielinder.se) 1) Gå till moobis.se 2) Klicka på skapa blogg i menyn längst upp och sedan på 4) Välj användarnamn och fylla i din epostadress. Du kan
Byggsektorns Miljöberäkningsverktyg Användarmanual
IVL Svenska Miljöinstitutet Byggsektorns Miljöberäkningsverktyg Användarmanual Version 1.1 December 17, 2018 Författare: Anders Sidvall Nils Boberg 12/17/2018 Page 1 Innehållsförteckning INSTALLERA BYGGSEKTORNS
Henrik Häggbom Examensarbete Nackademin Våren 2015
AV Henrik Häggbom Examensarbete Nackademin Våren 2015 1 INLEDNING Som examensarbete på min utbildning på Nackademin Programutveckling.NET kommer jag skapa ett webbaserat system för statistik, tabeller
Räkna med ASP.NET MVC 3
Instruktion Räkna med ASP.NET MVC 3 Introduktionsuppgift Författare: Mats Loock Kurs: ASP.NET MVC Kurskod:1DV409 Innehåll Du ska följa steg-för-steg -instruktionen i denna introduktionsuppgift och skapa
Every visitor coming to the this website can subscribe for the newsletter by entering respective address and desired city.
Every visitor coming to the this website can subscribe for the newsletter by entering respective e-mail address and desired city. Latest deals are displayed at the home page, wheras uper right corner you
E-legitimationsnämndens legitimeringstjänster för test
E-legitimationsnämndens legitimeringstjänster för test 2015-11-11 Inledning E-legitimationsnämnden) tillhandahåller två legitimeringstjänster för test. Den första legitimeringstjänsten har endast gränssnitt
Säkerhet. Säkerhet. Johan Leitet johan.leitet@lnu.se twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449
Säkerhet Säkerhet Webbteknik II, 1DV449 Johan Leitet johan.leitet@lnu.se twitter.com/leitet facebook.com/leitet F06 Säkerhet Dagens agenda HTTPS Autentisiering - Egen autentisiering - Lösenordshantering
INSTALLATION AV KLIENT
INSTALLATION AV KLIENT BOOK-IT 7.1 2013-11-27 Axiell Sverige AB, Box 24014, 224 21 Lund Fältspatvägen 4, 224 78 Lund, tel: 046-2700 400, e-post: lund@axiell.com Innehållsförteckning Förberedelse inför
Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09
Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09 1. Introduktion till webbprogrammering Webbprogrammering består av ett antal
Exemple på Tentauppgifter Webbprogrammering
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Exemple på Tentauppgifter Webbprogrammering 2019 02 28 version 2019-03-20 15:36:14+01:00 Tillåtna hjälpmedel: inga. Detta är ett exempel på
Blogga med Wordpress
Blogga med Wordpress Introduktion En blogg kan användas på en lång rad olika sätt, även om det vanligaste kanske är att se den som en mer eller mindre publik yta på nätet att dela med sig av tankar och
Introduktion till Entity Framework och LINQ. Källa och läs mer https://msdn.microsoft.com/en-us/data/aa937709.aspx
Introduktion till Entity Framework och LINQ Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Vad är Entity Framework? The Microsoft ADO.NET Entity Framework is an Object/Relational Mapping
Modul 8 Hantering av indata
Modul 8 Hantering av indata Indata De flesta webbplatser idag tillåter användare att mata in data Utan denna möjlighet hade inte webben varit vad den är idag Tyvärr innebär detta stora säkerhetsrisker
Manual - Storegate Team med synk
Manual - Storegate Team med synk Om tjänsten Med Storegate Team får du full kontroll över företagets viktiga digitala information. Du kan enkelt lagra, dela och synkronisera filer med högsta säkerhet inom
DB, DATA, LOGIC, EXPOSURE (WEB)
Backend DB, DATA, LOGIC, EXPOSURE (WEB) MySQL. MongoDB, LDAP, etc DB DATA LOGIC SOA TJänster EXPOSURE (WEB) Klienter kan vara webbsidor, desktop/mobil applikationer, andra SOA tjänster, ATM, parkeringsautomater
KPMG Secure File Transfer Handledning
KPMG Secure File Transfer Handledning 2017-05-12 KPMG Secure File Transfer KPMG i Sverige tillhandahåller en tjänst för säker filöverföring mellan KPMG och kunder. Tjänsten är fysiskt placerad i KPMG:s
Michael Q. Jones & Matt B. Pedersen University of Nevada Las Vegas
Michael Q. Jones & Matt B. Pedersen University of Nevada Las Vegas The Distributed Application Debugger is a debugging tool for parallel programs Targets the MPI platform Runs remotley even on private
Extern dialog för Samtycke och vårdrelation. Säkerhetstjänster
Extern dialog för Samtycke och vårdrelation Innehållsförteckning 1 INLEDNING 4 1.1 Allmänt... 4 1.2 Konventioner... 4 1.3 Referenser... 4 3 Webbsidegränssnittet 5 3.1 Förutsättningar... 5 3.2 Gränssnittsspecifikation...
Nils Byström, Avd f IT och inköp. Projekt AD-design Uppsala universitet DiarieNr: UFV 2009/413. Revision 1.0 Filnamn AD skyddade personuppgifter.
Bilaga 2 Benämning Utredning Ansvarig Nils Byström, Avd f IT och inköp Skapat 2008-11-01 10:56 Skyddade personuppgifter Pelle Lindé, IT-strategiska avd Senast sparat 2009-03-26 08:37 Projekt AD-design
Använda Office 365 på en iphone eller en ipad
Använda Office 365 på en iphone eller en ipad Snabbstartsguide Kontrollera e-post Konfigurera din iphone eller ipad så att du kan skicka och ta emot e-post från ditt Office 365-konto. Kontrollera din kalender
Dokumentation. Ver 1.1.9 2014-01-08 Sida 1
Dokumentation Sida 1 Innehåll Om detta dokument... 4 Funktioner... 4 Allmänt om våra gränssnitt (API:er)... 4 Kryptering... 4 Debugprioritet... 4 SMS/MMS - utgående... 5 Parametrar... 5 Webservice... 5