kintone REST API sample

Dependencies:   C12832 HTTPClient LM75B SNICInterface mbed-rtos mbed

Committer:
cybozudld
Date:
Thu Aug 31 00:46:34 2017 +0000
Revision:
3:57ffcb4c9f5d
Parent:
2:de803d46330e
Child:
4:2731edb619b9
Append Basic Authentications

Who changed what in which revision?

UserRevisionLine numberNew contents of line
takeuchiyoshihiko 2:de803d46330e 1 #define POST_URL "https://{subdomain}.cybozu.com/k/v1/record.json"
cybozudld 3:57ffcb4c9f5d 2 #define APP_ID 999
takeuchiyoshihiko 2:de803d46330e 3 #define API_TOKEN "xxx"
cybozudld 3:57ffcb4c9f5d 4 #define BASIC64 "xxx"
takeuchiyoshihiko 1:875f37e8e786 5 #define DEMO_AP_SSID "xxx"
takeuchiyoshihiko 1:875f37e8e786 6 #define DEMO_AP_SECUTIRY_KEY "xxx"
takeuchiyoshihiko 0:a064b2730f3e 7
takeuchiyoshihiko 0:a064b2730f3e 8 #include "mbed.h"
takeuchiyoshihiko 0:a064b2730f3e 9 #include "LM75B.h"
takeuchiyoshihiko 0:a064b2730f3e 10 #include "C12832.h"
takeuchiyoshihiko 0:a064b2730f3e 11 #include "HTTPClient.h"
takeuchiyoshihiko 0:a064b2730f3e 12 #include "SNIC_WifiInterface.h"
takeuchiyoshihiko 0:a064b2730f3e 13
takeuchiyoshihiko 0:a064b2730f3e 14 C12832 lcd(p5, p7, p6, p8, p11);
takeuchiyoshihiko 0:a064b2730f3e 15 LM75B sensor(p28, p27);
takeuchiyoshihiko 0:a064b2730f3e 16
takeuchiyoshihiko 0:a064b2730f3e 17 #if defined(TARGET_LPC1768)
takeuchiyoshihiko 0:a064b2730f3e 18 C_SNIC_WifiInterface wifi( p9, p10, NC, NC, p30 );
takeuchiyoshihiko 0:a064b2730f3e 19 #elif defined(TARGET_NUCLEO_F401RE) || defined(TARGET_NUCLEO_L152RE)
takeuchiyoshihiko 0:a064b2730f3e 20 C_SNIC_WifiInterface wifi( D8, D2, NC, NC, D3);
takeuchiyoshihiko 0:a064b2730f3e 21 #elif defined(TARGET_K64F)
takeuchiyoshihiko 0:a064b2730f3e 22 C_SNIC_WifiInterface wifi( D1, D0, NC, NC, D2);
takeuchiyoshihiko 0:a064b2730f3e 23 #endif
takeuchiyoshihiko 0:a064b2730f3e 24 #define DEMO_AP_SECURITY_TYPE e_SEC_WPA2_AES
takeuchiyoshihiko 0:a064b2730f3e 25
takeuchiyoshihiko 0:a064b2730f3e 26
takeuchiyoshihiko 0:a064b2730f3e 27
takeuchiyoshihiko 0:a064b2730f3e 28 void display(char *message)
takeuchiyoshihiko 0:a064b2730f3e 29 {
takeuchiyoshihiko 0:a064b2730f3e 30 lcd.cls();
takeuchiyoshihiko 0:a064b2730f3e 31 lcd.locate(0,3);
takeuchiyoshihiko 0:a064b2730f3e 32 lcd.printf("%s", message);
takeuchiyoshihiko 0:a064b2730f3e 33 wait(0.1);
takeuchiyoshihiko 0:a064b2730f3e 34 }
takeuchiyoshihiko 0:a064b2730f3e 35
takeuchiyoshihiko 0:a064b2730f3e 36 void post(void)
takeuchiyoshihiko 0:a064b2730f3e 37 {
takeuchiyoshihiko 0:a064b2730f3e 38 HTTPClient http;
takeuchiyoshihiko 0:a064b2730f3e 39 HTTPResult ret;
takeuchiyoshihiko 0:a064b2730f3e 40 char str[512];
takeuchiyoshihiko 0:a064b2730f3e 41 char message[128];
takeuchiyoshihiko 0:a064b2730f3e 42
takeuchiyoshihiko 0:a064b2730f3e 43 HTTPText inText(str, 1024);
takeuchiyoshihiko 0:a064b2730f3e 44
takeuchiyoshihiko 0:a064b2730f3e 45 char post_template[] = "{\"app\": %i, \"record\": {\"temp\": {\"value\": \"%.1f\"}}}\n";
takeuchiyoshihiko 0:a064b2730f3e 46 char header_template[] = "X-Cybozu-API-Token: %s\nContent-Type: application/json\n";
cybozudld 3:57ffcb4c9f5d 47 char header_template_basic[] = "Authorization:Basic %s\nX-Cybozu-API-Token: %s\nContent-Type: application/json\n";
takeuchiyoshihiko 0:a064b2730f3e 48 char post_data[256];
takeuchiyoshihiko 0:a064b2730f3e 49 char header_data[256];
cybozudld 3:57ffcb4c9f5d 50
cybozudld 3:57ffcb4c9f5d 51 // Basic Authentications
cybozudld 3:57ffcb4c9f5d 52 if (BASIC64 != "") {
cybozudld 3:57ffcb4c9f5d 53 sprintf(header_data, header_template_basic, BASIC64, API_TOKEN);
cybozudld 3:57ffcb4c9f5d 54 header_template[0] = header_template_basic[0];
cybozudld 3:57ffcb4c9f5d 55 } else {
cybozudld 3:57ffcb4c9f5d 56 sprintf(header_data, header_template, API_TOKEN);
cybozudld 3:57ffcb4c9f5d 57 }
takeuchiyoshihiko 0:a064b2730f3e 58 sprintf(post_data, post_template, APP_ID, (float)sensor);
takeuchiyoshihiko 0:a064b2730f3e 59
takeuchiyoshihiko 0:a064b2730f3e 60 HTTPText outText(post_data, strlen(post_data));
takeuchiyoshihiko 0:a064b2730f3e 61
takeuchiyoshihiko 0:a064b2730f3e 62 http.setHeader(header_data) ;
takeuchiyoshihiko 0:a064b2730f3e 63 http.setSSLversion(3) ; /* TLSv1.2 */
takeuchiyoshihiko 0:a064b2730f3e 64 ret = http.post(POST_URL, outText, &inText);
takeuchiyoshihiko 0:a064b2730f3e 65 if (ret == HTTP_OK) {
takeuchiyoshihiko 0:a064b2730f3e 66 sprintf(message, "OK: %s", str);
takeuchiyoshihiko 0:a064b2730f3e 67 display(message);
takeuchiyoshihiko 0:a064b2730f3e 68 } else {
takeuchiyoshihiko 0:a064b2730f3e 69 sprintf(message, "ERROR: %d", http.getHTTPResponseCode());
takeuchiyoshihiko 0:a064b2730f3e 70 display(message);
takeuchiyoshihiko 0:a064b2730f3e 71 }
takeuchiyoshihiko 0:a064b2730f3e 72 }
takeuchiyoshihiko 0:a064b2730f3e 73
takeuchiyoshihiko 0:a064b2730f3e 74 int main()
takeuchiyoshihiko 0:a064b2730f3e 75 {
takeuchiyoshihiko 0:a064b2730f3e 76 int check = 0;
takeuchiyoshihiko 0:a064b2730f3e 77 char message[128];
takeuchiyoshihiko 0:a064b2730f3e 78
takeuchiyoshihiko 0:a064b2730f3e 79 // Initialize Wi-Fi interface
takeuchiyoshihiko 0:a064b2730f3e 80 check = wifi.init();
takeuchiyoshihiko 0:a064b2730f3e 81 if (check != 0) {
takeuchiyoshihiko 0:a064b2730f3e 82 display("Wifi could not be initialized");
takeuchiyoshihiko 0:a064b2730f3e 83 return -1;
takeuchiyoshihiko 0:a064b2730f3e 84 } else {
takeuchiyoshihiko 0:a064b2730f3e 85 display("wifi initialized successfully");
takeuchiyoshihiko 0:a064b2730f3e 86 }
takeuchiyoshihiko 0:a064b2730f3e 87 wait(0.5);
takeuchiyoshihiko 0:a064b2730f3e 88
takeuchiyoshihiko 0:a064b2730f3e 89 // good form to make sure you are disconnected from all AP's
takeuchiyoshihiko 0:a064b2730f3e 90 check = wifi.disconnect();
takeuchiyoshihiko 0:a064b2730f3e 91 if (check != 0) {
takeuchiyoshihiko 0:a064b2730f3e 92 display("disconnect failed");
takeuchiyoshihiko 0:a064b2730f3e 93 return -1;
takeuchiyoshihiko 0:a064b2730f3e 94 } else {
takeuchiyoshihiko 0:a064b2730f3e 95 display("disconnection successful");
takeuchiyoshihiko 0:a064b2730f3e 96 }
takeuchiyoshihiko 0:a064b2730f3e 97 wait(0.3);
takeuchiyoshihiko 0:a064b2730f3e 98
takeuchiyoshihiko 0:a064b2730f3e 99 // Connect AP
takeuchiyoshihiko 0:a064b2730f3e 100 wifi.connect( DEMO_AP_SSID
takeuchiyoshihiko 0:a064b2730f3e 101 , strlen(DEMO_AP_SSID)
takeuchiyoshihiko 0:a064b2730f3e 102 , DEMO_AP_SECURITY_TYPE
takeuchiyoshihiko 0:a064b2730f3e 103 , DEMO_AP_SECUTIRY_KEY
takeuchiyoshihiko 0:a064b2730f3e 104 , strlen(DEMO_AP_SECUTIRY_KEY) );
takeuchiyoshihiko 0:a064b2730f3e 105 wait(0.5);
takeuchiyoshihiko 0:a064b2730f3e 106
takeuchiyoshihiko 0:a064b2730f3e 107 // Get DHCP IP
takeuchiyoshihiko 0:a064b2730f3e 108 check = wifi.setIPConfig(true);
takeuchiyoshihiko 0:a064b2730f3e 109 if (check != 0) {
takeuchiyoshihiko 0:a064b2730f3e 110 display("SetIPConfig failed");
takeuchiyoshihiko 0:a064b2730f3e 111 return -1;
takeuchiyoshihiko 0:a064b2730f3e 112 } else {
takeuchiyoshihiko 0:a064b2730f3e 113 display("SetIPConfig successful");
takeuchiyoshihiko 0:a064b2730f3e 114 }
takeuchiyoshihiko 0:a064b2730f3e 115 sprintf(message, "IP: %s", wifi.getIPAddress());
takeuchiyoshihiko 0:a064b2730f3e 116 display(message);
takeuchiyoshihiko 0:a064b2730f3e 117
takeuchiyoshihiko 0:a064b2730f3e 118 while (true) {
takeuchiyoshihiko 0:a064b2730f3e 119 post();
takeuchiyoshihiko 0:a064b2730f3e 120 wait(60);
takeuchiyoshihiko 0:a064b2730f3e 121 }
takeuchiyoshihiko 0:a064b2730f3e 122
takeuchiyoshihiko 0:a064b2730f3e 123 wifi.disconnect();
takeuchiyoshihiko 0:a064b2730f3e 124 }