3g module

Hello,
I’m working in a project where I have to transmit data from arduino to a local server, I am using 3G/GPRS shield over Arduino from cooking hacks ( https://www.cooking-hacks.com/index.php/documentation/tutorials/3g-gps-shield-arduino-raspberry-pi-tutorial/)

I tried this tutorial: https://www.cooking-hacks.com/documentation/tutorials/how-to-upload-data-to-a-personal-cloud-server-using-3g-gps/
but it didn’t work, although I created the channels as mentioned but I didn’t know what url to use instead of api.thingspeak.com, what url I have to use?

[//*  
 *  3G + GPS shield
 *  
 *  Copyright (C) Libelium Comunicaciones Distribuidas S.L. 
 *  http://www.libelium.com 
 *  
 *  This program is free software: you can redistribute it and/or modify 
 *  it under the terms of the GNU General Public License as published by 
 *  the Free Software Foundation, either version 3 of the License, or 
 *  (at your option) any later version. 
 *  
 *  This program is distributed in the hope that it will be useful, 
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of 
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 *  GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License 
 *  along with this program.  If not, see http://www.gnu.org/licenses/. 
 *  
 *  Version:           1.0
 *  Design:            David Gasc?n 
 *  Implementation:    Alejandro Gallego & Victor Boria
 */

//Write here you SIM data
const char pin_number[] = "0000";
const char apn[] = "zain";
const char user_name[] = "zain";
const char password[] = "zain";

//Write here you Thingspeak data
const char APIWriteKey[] = "1R9Y2YFDOHFK00GA";

char url[ ]= "api.thingspeak.com/update?OUR_KEY=&field1=DATA_1&field2=DATA_2";
int port= 80;

int light = 15;  // Stores the light level

float temperature = 10.0; // Stores the calculated temperature
int sample;              // Counts through ADC samples
float ten_samples = 0.0; // Stores sum of 10 samples

int8_t answer;
int onModulePin = 2, aux;
int data_size = 0;
int end_file = 0;
char aux_str[100];
char data[800];
int x = 0;
long previous;


void setup(){

  pinMode(onModulePin, OUTPUT);
  Serial.begin(115200);   

  Serial.println("Starting...");
  power_on();

  delay(3000);

  //sets the PIN code
  sprintf(aux_str, "AT+CPIN=%s", pin_number);
  sendATcommand(aux_str, "OK", 2000);

  delay(3000);

  while( (sendATcommand("AT+CREG?", "+CREG: 0,1", 500) || 
    sendATcommand("AT+CREG?", "+CREG: 0,5", 500)) == 0 );

  while( (sendATcommand("AT+CGREG?", "+CGREG: 0,1", 500) || 
    sendATcommand("AT+CGREG?", "+CGREG: 0,5", 500)) == 0 );

  // sets APN, user name and password
  sprintf(aux_str, "AT+CGSOCKCONT=1,\"IP\",\"%s\"", apn);
  sendATcommand(aux_str, "OK", 2000);

  sprintf(aux_str, "AT+CSOCKAUTH=1,1,\"%s\",\"%s\"", user_name, password);
  sendATcommand(aux_str, "OK", 2000);

}
void loop(){
  
  //light = analogRead(A1);
  //measure_temperature();
  
  //Send data to Thingspeak via HTTP GET
  send_data(light, temperature);
  
  //Wait a minute
  delay(60000);
}



/************************************************************************
 ****               Definition of functions                          ****
 ************************************************************************/

/*void measure_temperature()
{
  // take 10 samples from the MCP9700
  for (sample = 0; sample < 10; sample++) {
    // convert A0 value to temperature
    temperature = ((float)analogRead(A0) * 5.0 / 1024.0) - 0.5;
    temperature = temperature / 0.01;
    temperature = temperature - 5.3;
    // sample every 0.1 seconds
    delay(100);
    // sum of all samples
    ten_samples = ten_samples + temperature;
  }
  // get the average value of 10 temperatures
  temperature = ten_samples / 10.0;
  ten_samples = 0.0;
}
*/
void send_data(int _light, float _temperature){
  // request the url
  sprintf(aux_str, "AT+CHTTPACT=\"%s\",%d", url, port);
  answer = sendATcommand(aux_str, "+CHTTPACT: REQUEST", 60000);

  if (answer == 1)
  { 
    dtostrf(_temperature,2,1,data);

    // set the request
     sprintf(aux_str, "GET /update?key=%s&field1=%d&field2=%s HTTP/1.1\r\nHost: api.thingspeak.com\r\nContent-Length: 0\r\n\r\n", APIWriteKey, _light, data)  ; 
    Serial.println(aux_str);
    // Sends "Ctrl+Z"
    aux_str[0] = 0x1A;
    aux_str[1] = 0x00;
    answer = sendATcommand(aux_str, "+CHTTPACT: 0", 60000);

    x=0;
    if (answer == 1)
    {

      Serial.println("OK");

    }
    else
    {
      Serial.println("Error sending the request");
    }
  }
  else
  {
    Serial.println("Error waiting the request");    
  }

  delay(10000);
}

void power_on(){

  uint8_t answer=0;

  // checks if the module is started
  answer = sendATcommand("AT", "OK", 2000);
  if (answer == 0)
  {
    // power on pulse
    digitalWrite(onModulePin,HIGH);
    delay(3000);
    digitalWrite(onModulePin,LOW);

    // waits for an answer from the module
    while(answer == 0){    
      // Send AT every two seconds and wait for the answer
      answer = sendATcommand("AT", "OK", 2000);    
    }
  }

}


int8_t sendATcommand(char* ATcommand, char* expected_answer1, unsigned int timeout)
{

  uint8_t x=0,  answer=0;
  char response[100];
  unsigned long previous;

  memset(response, '\0', 100);    // Initialize the string

  delay(100);

  while( Serial.available() > 0) Serial.read();    // Clean the input buffer

  Serial.println(ATcommand);    // Send the AT command 


    x = 0;
  previous = millis();

  // this loop waits for the answer
  do{

    if(Serial.available() != 0){    
      if (x == 100)
      {
        strncpy(response, response +1, 99);
        response[99] = Serial.read();
      }
      else
      {
        response[x] = Serial.read();
        x++;
      }
      // check if the desired answer is in the response of the module
      if (strstr(response, expected_answer1) != NULL)    
      {
        answer = 1;
      }
    }
    // Waits for the asnwer with time out
  }
  while((answer == 0) && ((millis() - previous) < timeout));    

  return answer;
}

int8_t sendATcommand2(char* ATcommand, char* expected_answer1, char* expected_answer2, unsigned int timeout)
{

  uint8_t x=0,  answer=0;
  char response[100];
  unsigned long previous;

  memset(response, '\0', 100);    // Initialize the string

  delay(100);

  while( Serial.available() > 0) Serial.read();    // Clean the input buffer

  Serial.println(ATcommand);    // Send the AT command 


    x = 0;
  previous = millis();

  // this loop waits for the answer
  do{

    if(Serial.available() != 0){    
      response[x] = Serial.read();
      x++;
      // check if the desired answer is in the response of the module
      if (strstr(response, expected_answer1) != NULL)    
      {
        answer = 1;
      }
      // check if the desired answer is in the response of the module
      if (strstr(response, expected_answer2) != NULL)    
      {
        answer = 2;
      }
    }
    // Waits for the asnwer with time out
  }
  while((answer == 0) && ((millis() - previous) < timeout));    

  return answer;
}
        ]

post the code that you tried here, using code tags,

Ok I posted it