Jump to content

Marcus Goluch

School User
  • Posts

  • Joined

  • Last visited

Personal Information

  • School
    Broadway Academy

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Marcus Goluch's Achievements


Contributor (2/6)

  • First Post
  • Collaborator Rare
  • Conversation Starter

Recent Badges



  1. Here is one for you, If I wanted to put Frog behind an NGINX reverse proxy what would the config look like?
  2. Thank you That sounds like exactly what I need, just out of curiosity do we have a function that returns the same data as users.getOne but for all users? I am writing up a sync task and the less api calls the better, otherwise I am going to have to do 1 API and 1 MYSQL call per user. Whilst this is the nature of such applications, short cuts are always welcome.
  3. @Graham Quince The category uuid for the MIS data was not easy to locate and I will assume it is a different UUID per server. The idea of the platform I am creating is for it to be used by other schools and thus I need a solution for finding the correct category with out user input. I am not liking the idea of writing an installation manual that says fire up Google chromes networking console and reverse engineer an internal API call. Is there a way for me to look up that uuid for mis data if not can an endpoint for it be added?
  4. Well, what ever you guys have done, I am now getting a response from the API.
  5. Eager to continue on this project, any updates?
  6. Ok, hold onto your hat @Graham Quince because your now heading into one of my rabbit holes. So, firstly I have a function that uses the node js request library to make an API call on the Frog 1 API. This takes an API endpoints url and creates the API request with the oauth headers. const fCallAPI = (sToken, sTokenSecret, sMethod, sURL, oParams = { }, fDone) => { let oConfig = pFrogApi.config.get(); oPrototype.request(`${oConfig.oauth.frogsite}/${sURL}`, { method: sMethod, oauth: { consumer_key: oConfig.oauth.clientid, consumer_secret: oConfig.oauth.clientsecret, token: sToken, token_secret: sTokenSecret }, headers: { "X-AuthType": "oauth_1_0_a" }, qs: oParams, json: true }, (err, req, body) => { if (!fDone) return; if (err || !body) fDone(`Frog API error '${sURL}'`); if (body.status == "error") return fDone(`Frog API error '${sURL}' ` + body.response.message); fDone(null, body.response); } ); }; And this function works perfectly, no issues (example). const fUserByID = (sToken, sTokenSecret, sID, fDone) => { fCallAPI(sToken, sTokenSecret, "GET", "api/fdp/2/user/get", {uuid: sID}, fDone); }; So, now I have a second function to call the Frog 2 API, by creating the request information and passing it to the Frog 1 API function . const fCallAPI2 = (sToken, sTokenSecret, sMethod, sFunction, oParams = { }, fDone) => { fCallAPI(sToken, sTokenSecret, sMethod, "api/2/", Object.assign({ method: sFunction, _v: "2010_0_20", }, oParams), fDone); }; How ever when I call this function I never get a response, instead it just hangs. fCallAPI2(sToken, sTokenSecret, "GET", "users.getDataInCategory", { _device_class: "computer", user_uuid: sUserUUID, uuid: "66851A4F2004C1C988B59F411F928605CB7D97BCEDF3177F" }, (oErr, oResults) => { console.log("ERROR ", oErr); console.log("RESULTS ", oResults); });
  7. I am indeed. I am using the same oauth headers as the api 1 call. Should I start sharing node JS code snippets?
  8. All the 1.0 api calls work fine. I have tried 2 of the 2.0 api calls and they do not work and just hang. I would try more but, I have only dug up how to use: users.getSummary users.getDataInCategory If you have any for me to try I am happy to.
  9. @Graham Quince Can you please verify I am doing this correctly since all the internal API (2) calls just seem to hang and i never get a response. I am trying to query users.getDataInCategory as you sugested. MIS data is located under uuid 66851A4F2004C1C988B59F411F928605CB7D97BCEDF3177F. So, I am sending a GET request to https://<frog-server-address>/api/2/ with the following parameters: method: users.getDataInCategory _device_class: computer user_uuid: <Put student frog uuid here> uuid: 66851A4F2004C1C988B59F411F928605CB7D97BCEDF3177F This means that the request should look this this: https://<frog-server-address>/api/2/?method=users.getDataInCategory&_device_class=computer&user_uuid=EXAMPLE&uuid=66851A4F2004C1C988B59F411F928605CB7D97BCEDF3177F I also have the oAuth 1.0 headers that are working for the external API (1). But yet I get no response and it just hangs, any sugestions?
  10. thanks @Graham Quince So, I can use the endpoint for the category API. What is the best way of getting the info on the internal API end points and parameters? Otherwise I'll be browsing though obscured frogOS java script clientside code looking for them for days. Frog's user front end is exceptionally complex
  11. Hi Graham, Is there an API endpoint for users.getDataInCatagaory because I am using the external API. Also Balances is this thing here
  12. @Graham Quince This one I think will need a dev to look at. Can i use /api/fdp/2/user/get to get a students enrolment number. At the moment it does not seem the API provides that. I am working on a user end extractor/importer for frog. This would allow server admins to import data from services like Bio-Store into our custom widgets.
  13. Its working..... I now have ULIMITED POWA! ? Now my only question is how far should I got with this application? Thanks for the help Graham. What are balances? & Would this be a better way to do Catering Balance instead of frog data store?
  14. Thank Graham, Will try this when tonight. Oh this is getting exciting.
  15. So, I have finally found time to sit down and start playing with this. I now have oath working so I can sign in and obtain a token and secret from my log in. Anyway I am stuck trying to figure out how to authorize requests on the api. Just keep getting 401 No auth type given I have all the correct oauth 1.0 headers, any suggestions? { "status": "error", "response": { "message": "No auth type given", "code": "auth-failed", "http": 401 }, "request": { "url": "/auth/get", "method": "get", "headers": { "host": "<REDACTED>", "authorization": "OAuth oauth_consumer_key=\"<REDACTED>\",oauth_nonce=\"<REDACTED>\",oauth_signature_method=\"HMAC-SHA1\",oauth_timestamp=\"1616357044\",oauth_token=\"<REDACTED>\",oauth_version=\"1.0\",oauth_signature=\"<REDACTED>\"", "connection": "close" }, "params": [] } } Maybe @Graham Quincecould get one of the devs to check out it works back end?
  • Create New...