#Extension module Request

When it comes to integrating with a SOAP Service, a REST API or connecting with another service, the package requests is one of the most stable and widely used Python modules to perform such integrations. The full reference documentation of the Python requests package can be found here.

To use the requests package, let’s tick the checkbox Requests in the Extension module configuration.

Below it’s reported an example of a function with 3 returns (1: Warm, 2: Cold, 3: Generic error) that:

  1. import the requests module
  2. get the value of the variable city from the conversation
  3. call the Open Weather Map API
  4. check if the API didn’t respond with a header code 200 success
  5. parse the JSON response and save the new variables weather, temperature, pressure and humidity, that can be used in the conversation or other functions
  6. trigger the return 1: Warm if the temperature is higher than 20 C degrees, otherwise trigger the return 2: Cold.
  7. in case of unexpected error or unsuccessful API call, trigger the return 3: Generic error.


# Import the requests module
import requests

city = 'London' # Target city
appid = 'abcdefg123456' # Subscription key

# Body of the integration
try:
    Make API call
    req = requests.get("https://api.openweathermap.org/data/2.5/weather?q=" + city + "&appid=" + appid)

# If status_code is not 200 then log the error and exit
if req.status_code != 200:
    print("API responded with a " + str(req.status_code) + " error")
    print(req.content)
    exit(3) # Return 3: Generic error

# Get the JSON result
result = req.json()
save("weather", result["weather"]["main"]) # Save weather description
save("temperature", result["main"]["temp"]) # Save temperature
save("pressure", result["main"]["pressure"]) # Save pressure
save("humidity", result["main"]["humidity"]) # Save humidity

if result["main"]["temp"] > 22:
    exit(1) # Return 1: Warm
else:
    exit(2) # Return 2: Cold

except Exception as e:
    print("An unexpected exception was raised:\n" + str(e))
    exit(3) # Return 3: Generic error

⚠️Important note: If the Requests box in the Extension modules configuration table is not ticked, the system will show the following message in the Log Error console:

[x] Security error in importing a Python module: package "requests" is forbidden. Will be ignored