Agrobox Agronomist API

Agrobox Agronomist API

Αυτό το άρθρο γίνεται ανάλυση της δομής του API που προσφέρει την δυνατότητα αλληλεπήδρασης με την πλατφόρμα απο γεωπόνους / συμβούλους για την διαχείριση των αγροτών μέσα απ το δικό τους σύστημα πχ ERP/ CRM

 

 

Το κλείδι api ειναι διαθέσιμο ΜΟΝΟ στο πακέτο BUSSNESS ΓΕΩΠΟΝΩΝ/ ΣΥΜΒΟΥΛΩΝ

URL API: https://app.agrobox.gr/api.php

Μέθοδος αιτήματος: POST

Παράμετροι: HTTP QUERY

Απάντηση: JSON

Παράμετροι κλήσης API

 Παράμετρος Περιγραφή Απαιτείται Τύπος δεδομένων
Αρχική τιμή
key User API Key ναι αλφαριθμητικό  
user-request Agronomist Auth request ναι ακέραιος  Πάντα 1
task API action ναι αλφαριθμητικό  
data Update or add new data ναι (σε ενημέρωση ή προσθήκη) array  
filters Φίλτρα ανάκτησης οχι (σε ανάκτηση μόνο) array  
limit Μέγιστα αποτελέσματα ανα σελίδα οχι (σε ανάκτηση μόνο) ακέραιος Πάντα 100 (προσωρινά)
p Αριθμός σελίδας - Σελιδοποιήση οχι (σε ανάκτηση μόνο) ακέραιος 1

 

Tasks

 Τιμές task
 Περιγραφή
agronomist.getprofile Ανάκτηση προφίλ γεωπόνου
agronomist.updateprofile Ενημέρωση προφιλ γεωπόνου
agronomist.getfarmers Ανάκτηση προφιλ αγροτών
agronomist.addfarmer Ενημέρωση ή προσθήκη αγρότη
agronomist.getfields Ανάκτηση αγροτεμαχιών αγροτών μαζί με το ιστορικό των καλλιεργειών
agronomist.addfield Ενημέρωση ή προσθήκη αγροτεμαχίου
agronomist.getcrops Ανάκτηση καλλιεργιών που υποστηρίζει το AgroBox
agronomist.getseasons Ανάκτηση καλλιεργητικών ετών
   
   

 

Δομή σώματος κλήσης / Body Request

key=USER_API_KEY&user-request=1&task=TASK_NAME

Παράδειγμα 1

Ανάκτηση δεδομένων προφιλ

key=abd123xxxxxxx&user-request=1&task=agronomist.getprofile

// JSON CODE
 0    1  {  2    "result": 1,  3    "data": {  4      "name": "ΣΥΜΒΟΥΛΟΣ",  5      "email": "geoponosDemo@agrobox.gr",  6      "mobile": "699999999999",  7      "username": "geoponos",  8      "published": "1",  9      "companyname": "Γεωπονος Εταιρεία ΚΥΔ",  10      "city": "ΒΟΛΟΣ",  11      "address": "ΓΑΖΗ 92Β",  12      "zip": "38333",  13      "state": "ΜΑΓΝΗΣΙΑ",  14      "country": "GR",  15      "verified_mobile": "0",  16      "verified_email": "0",  17      "vatid": "048313748",  18      "dailyemail": "0",  19      "serialkey": ""  20    }  21  } 

Ενημέρωση δεδομένων προφιλ

key=abd123xxxxxxx&user-request=1&task=agronomist.updateprofile&data[companyname]=My new company name&data[address]=My new address

 

REST API CLIENT (Firefox)

 

 

Στην ενημέρωση / προσθήκη εγγραφών υπάρχουν κάποιοι περιορισμοί στα πεδία που επιτρέπεται να αλλάξουν καθώς και στα πεδία κειμένου γίνεται αυτόματη περικοπή χαρακτήρων οταν υπερβαίνει το μέγιστο μέγεθος.

Στην ενημέρωση εγγραφών δεν είναι υποχρεωτικό να στέλνονται όλα τα πεδία, αλλα μόνο αυτά που αλλάζουν τιμή.

 

agronomist.getfarmers

key=abd123xxxxxxx&user-request=1&task=agronomist.getfarmers

Παράμετρος filters - Κριτήριο αναζήτσης και περιοσρισμός αποτελσμάτων

  1. id (ID αγρότη)
  2. email
  3. username
  4. vatid (ΑΦΜ)
  5. code (κωδικός - αυτο το πεδίο ειναι για δική σας χρηση πχ id αγρότη του ERP/CRM)

key=abd123xxxxxxx&user-request=1&task=agronomist.getfarmers&filters[email=Αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου προστατεύεται από τους αυτοματισμούς αποστολέων ανεπιθύμητων μηνυμάτων. Χρειάζεται να ενεργοποιήσετε τη JavaScript για να μπορέσετε να τη δείτε.

 

agronomist.addfarmer

key=abd123xxxxxxx&user-request=1&task=agronomist.addfarmer&data[...]=..

Το "data" περιελαμβάνει όλα τα πεδία του αγρότη

Υποχρεωτικά πεδια για την νέα εισαγωγή αγρότη

  1. email (μοναδικο ανα χρήστη)
  2. vatid (ΑΦΜ) (μοναδικο ανα χρήστη)
  3. name (Ονοματεπώνυμο αγρότη)

username εαν ειναι κενό το σύστημα θα παράξει μόνο του ένα username βάση το email και θα υπάρχει στην απάντηση του api
password εαν ειναι κενό το σύστημα θα παράξει έναν τυχαίο κωδικό και θα υπάρχει στην απάντηση του api

Για την ενημέρωση του προφιλ του αγρότη θα πρέπει να συμπεριλάβετε στο ερώτημα τις παραμέτρους updatekey και updatevalue.

To updatekey ειναι το κριτήριο εύρεσης της υπάρχουσας εγγραφής και μπορει να πάρει τις εξης τιμές:

  1. id (default)
  2. email
  3. username
  4. vatid (ΑΦΜ)

Προτείνεται να γίνεται πάντα με id, καθώς το email ή το vatid μπορεί να αλλάξει απο τον χρήστη.

key=abd123xxxxxxx&user-request=1&task=agronomist.addfarmer&updatekey=email&updatevalue=Αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου προστατεύεται από τους αυτοματισμούς αποστολέων ανεπιθύμητων μηνυμάτων. Χρειάζεται να ενεργοποιήσετε τη JavaScript για να μπορέσετε να τη δείτε.&data[...]=..

 

agronomist.getfields

key=abd123xxxxxxx&user-request=1&task=agronomist.getfields

Παράμετρος filters - Κριτήριο αναζήτσης και περιοσρισμός αποτελσμάτων

  1. id (ID χωραφιού)
  2. farmerid (ID αγρότη)
  3. name
  4. status (0 ή 1)
  5. cropid (id καλλιέργειας)
  6. croplatestonly=1 (να επιστρέφει μονο για την τρέχουσα χρονιά αντι για όλο το ιστορικό)
key=abd123xxxxxxx&user-request=1&task=agronomist.getfields&filters[id]=198&croplatestonly=0

agronomist.addfield

key=abd123xxxxxxx&user-request=1&task=agronomist.addfarmer&data[...]=..

Το "data" περιελαμβάνει όλα τα πεδία του αγρότη

Υποχρεωτικά πεδια για την νέα εισαγωγή αγρότη

  1. farmerid (μοναδικο id αγρότη / χρήστη)
  2. name (Όνομασία χωραφιού)
  3. location (Τοποθεσία χωραφιού πχ Αλμυρός, Μαγνησία, 37100, GR)
  4. esga_vertices ή vertices (lat/lng)  (συντεταγμένες χωραφιού)
  5. crop_data (ιστορικό καλλιέργειας ανα χρονιά)
  6. ektasi (σε στρέμματα ΟΧΙ εκτάρια)

esga_vertices περιλεμβάνει πολλαπλά set συντεγμένων σε ESGA 87 array(10000,20000). Μπορεί να ειναι σε array ή json
vertices περιλεμβάνει πολλαπλά set συντεγμένων στο διεθνές σύστημα array('lat'=>100000,'lng'=>200000). Μπορεί να ειναι σε array ή json

agro_view:  (0 ή 1) εαν θα εμφανίζεται στο διαχειριστικό του γεωπόνου
agro_group: Ομαδοποιήση χωραφιών για την καλυτερη διαχείριση από γεωπόνο / σύμβουλο

crop_data ειναι ένας πίνακας οπου περιέχει ένα ζέυγος καλλιεργητικής χρονιάς και τύπο καλλιέργειας

  1. seasonid (ή ενναλακτικά year)
  2. cropid (ή ενναλακτικά cropname - οπου croname πρέπει να ειναι ακριβώς όπως αναγράφεται στο agrobox)

Το έτος 2022 σημαίνει 2022-2023 καλλιεργητική χρονιά.
Το έτος 2023 σημαίνει 2023-2024 καλλιεργητική χρονιά
Κάθε καλλιέργεια δεν έχει την ίδια καλλιεργητική χρονιά την ίδια χρονική στιγμή, η χρονιά αλλάζει με την πρώτη συγκομιδή

Tip:

  • Τα seasonid μπορειτε να τα βρείτε απο το agronomist.getseasons
  • Τα cropid μπορειτε να τα βρείτε απο το agronomist.getcrops

// PHP CODE
 0  $data=array(  1  	'farmerid'=>12,  2  	'name'=>'ΚΑΡΑΓΚΑΝΙ',  3  	'location'=>'Επαρ.Οδ. Περίβλεπτου-Κοκκίνας, Περίβλεπτο 375 00, Ελλάδα'  4  	'vertices'=>'[{"lat":39.2842856777794,"lng":22.706592929751846},{"lat":39.28448497993258,"lng":22.70571316519496},{"lat":39.28350507221904,"lng":22.70571316519496},{"lat":39.28358811577729,"lng":22.70648564139125}]',  5  	'ektasi'=>6685,  6  	'crop_data'=>array(  7  		array('year'=>2022,'cropid'=>23),  8  		array('seasonid'=>9,'cropid'=>22),  9  	),  10  );  11  $data_string=http_build_query($data); 


Για ενημέρωση συμπληρώστε το &fieldid=XXX. Η ενημέρωση γίνεται μόνο σε ενεργά αγροτεμάχια (status=1)

 key=abd123xxxxxxx&user-request=1&task=agronomist.addfield&farmerid=12&fieldid=122&data[...]

agronomist.getcrops

key=abd123xxxxxxx&user-request=1&task=agronomist.getcrops

Επιστρέφει μια λίστα με id, ονομα καλλιέργειας και άλλες πληροφορίες. Αποθηκεύστε αυτά τα δεδομένα και ενημερώστε τα μια φορά καθε τόσο καθώς δεν αλλάζουν συχνά.


agronomist.getseasons

key=abd123xxxxxxx&user-request=1&task=agronomist.getaseasons

Επιστρέφει μια λίστα με id, και έτος. Αποθηκεύστε αυτά τα δεδομένα και ενημερώστε τα μια φορά καθε τόσο καθώς δεν αλλάζουν συχνά.

 

 Παράδειγμα σε PHP

// PHP CODE
 0    1  <?php  2  $api_url='https://app.agrobox.gr/api.php';  3  $api_key='xxxxxx';  4    5  //Προσθήκη χωραφιού στον αγρότη με ID:12  6  $query=array(  7  	'key'=>$api_key,  8  	'user-request'=>1,  9  	'task'=>'agronomist.addfield',  10  	'data'=>array(   11  		'farmerid'=>12,   12  		'name'=>'ΚΑΡΑΓΚΑΝΙ',   13  		'location'=>'Επαρ.Οδ. Περίβλεπτου-Κοκκίνας, Περίβλεπτο 375 00, Ελλάδα',   14  		'vertices'=>'[{"lat":39.2842856777794,"lng":22.706592929751846},{"lat":39.28448497993258,"lng":22.70571316519496},{"lat":39.28350507221904,"lng":22.70571316519496},{"lat":39.28358811577729,"lng":22.70648564139125}]',   15  		'ektasi'=>6685,   16  		'crop_data'=>array(   17  			array('year'=>2022,'cropid'=>23),   18  			array('seasonid'=>9,'cropid'=>22),   19  		),   20  	)  21  );  22    23  $response=senddata($api_url,$query);  24  echo $response;  25    26  //Τα χωράφια του αγρότη με ID:12  27  $query=array(  28  	'key'=>$api_key,  29  	'user-request'=>1,  30  	'task'=>'agronomist.getfields',  31  	'filters'=>array(   32  		'farmerid'=>12  33  	)  34  );  35    36  $response=senddata($api_url,$query)  37  echo $response;  38    39    40  function senddata($api_url,$query)  41  {  42  	$data_string=http_build_query($query);  43  	$ch = curl_init();  44  	curl_setopt($ch,CURLOPT_URL,$api_url);  45  	curl_setopt($ch,CURLOPT_POST, 1);  46  	curl_setopt($ch,CURLOPT_POSTFIELDS,$data_string);  47  	curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);  48  	curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,15);  49  	curl_setopt($ch,CURLOPT_TIMEOUT, 25);  50  	$response = curl_exec($ch);  51  	curl_close ($ch);  52  	return $response;  53  }  54    55   

Σχετικα με το AgroΒox

Μία ιδέα, μία καινοτομία και μία αλλαγή κάθε φορά.

Το Agrobox βοηθά τους αγρότες,γεωπόνους και συμβούλους  να γίνουν πιο δυναμικοί, πιο εξελιγμένοι, πιο αποτελεσματικοί.

Αυτό φέρνει στην αγροτική επιστήμη, καινοτόμες στρατηγικές και υψηλές ψηφιακές τεχνολογίες για την επίλυση σύνθετων προβλημάτων με νέους τρόπους.

GsmBox

07 Σεπτεμβρίου 2021

Search