# Arduino iot-api Python client
## Requirements
* Python 3.10+
## Installation
You can install the package directly from Github (you may need to run `pip` with
`sudo`):
```sh
pip install arduino-iot-client
```
## Getting Started
### Authentication
The client requires a valid access token, you can use `requests-oauthlib` to get
one, to install the library do:
```sh
pip install requests-oauthlib
```
After installing the library you can use this Python code to get a token:
```python
from oauthlib.oauth2 import BackendApplicationClient
from requests_oauthlib import OAuth2Session
oauth_client = BackendApplicationClient(client_id=YOUR_CLIENT_ID)
token_url = "https://api2.arduino.cc/iot/v1/clients/token"
oauth = OAuth2Session(client=oauth_client)
token = oauth.fetch_token(
token_url=token_url,
client_id=YOUR_CLIENT_ID,
client_secret=YOUR_CLIENT_SECRET,
include_client_id=True,
audience="https://api2.arduino.cc/iot"
)
print(token.get("access_token"))
```
In case of organization access, you can add organization identifier specifying required header:
```python
org_id="<org-id>"
token = oauth.fetch_token(
token_url=token_url,
client_id=YOUR_CLIENT_ID,
client_secret=YOUR_CLIENT_SECRET,
include_client_id=True,
audience="https://api2.arduino.cc/iot",
headers={"X-Organization":org_id}
)
print(token.get("access_token"))
```
Once you get a token, you can create an instance of the iot-api client:
```python
import iot_api_client as iot
from iot_api_client.exceptions import ApiException
from iot_api_client.models import *
from iot_api_client.configuration import Configuration
from iot_api_client.api import DevicesV2Api
# configure and instance the API client
client_config = Configuration(host="https://api2.arduino.cc")
client_config.access_token = YOUR_ACCESS_TOKEN
client = iot.ApiClient(client_config)
# as an example, interact with the devices API
devices_api = deviceApi.DevicesV2Api(client)
client_config = Configuration(host="https://api2.arduino.cc")
client_config.access_token = access_token
client = iot.ApiClient(client_config)
try:
api_instance = DevicesV2Api(client)
api_response = api_instance.devices_v2_list()
for device in api_response:
print(device.name+" - id:"+device.id+" - type:"+device.type)
except ApiException as e:
print("Exception when calling DevicesV2Api->devices_v2_list: %s\n" % e)
```
In case of organization access, you can specify organization identifier in this way:
```python
client = iot.ApiClient(client_config,header_name="X-Organization",header_value=org_id)
# or you can specify at method level, like:
api_instance.devices_v2_list(x_organization="org_id")
```
For a working example, see [the example folder](https://github.com/arduino/iot-client-py/tree/master/example/main.py) in this repo.
## How to get Arduino IoT Cloud Client Credentials
You can generate Arduino IoT Cloud Client Credentials in `API Keys` section in the [IoT Cloud](https://app.arduino.cc/api-keys):
### Step 1

### Step 2

### Step 3

Raw data
{
"_id": null,
"home_page": null,
"name": "arduino-iot-client",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "OpenAPI, OpenAPI-Generator, Iot API",
"author": null,
"author_email": null,
"download_url": null,
"platform": null,
"description": "# Arduino iot-api Python client\n\n## Requirements\n\n* Python 3.10+\n\n## Installation\n\nYou can install the package directly from Github (you may need to run `pip` with\n`sudo`):\n\n```sh\npip install arduino-iot-client\n```\n\n## Getting Started\n\n### Authentication\n\nThe client requires a valid access token, you can use `requests-oauthlib` to get\none, to install the library do:\n\n```sh\npip install requests-oauthlib\n```\n\nAfter installing the library you can use this Python code to get a token:\n\n```python\nfrom oauthlib.oauth2 import BackendApplicationClient\nfrom requests_oauthlib import OAuth2Session\n\noauth_client = BackendApplicationClient(client_id=YOUR_CLIENT_ID)\ntoken_url = \"https://api2.arduino.cc/iot/v1/clients/token\"\n\noauth = OAuth2Session(client=oauth_client)\ntoken = oauth.fetch_token(\n token_url=token_url,\n client_id=YOUR_CLIENT_ID,\n client_secret=YOUR_CLIENT_SECRET,\n include_client_id=True,\n audience=\"https://api2.arduino.cc/iot\"\n)\n\nprint(token.get(\"access_token\"))\n```\n\nIn case of organization access, you can add organization identifier specifying required header:\n\n\n```python\n\norg_id=\"<org-id>\"\n\ntoken = oauth.fetch_token(\n token_url=token_url,\n client_id=YOUR_CLIENT_ID,\n client_secret=YOUR_CLIENT_SECRET,\n include_client_id=True,\n audience=\"https://api2.arduino.cc/iot\",\n headers={\"X-Organization\":org_id}\n)\n\nprint(token.get(\"access_token\"))\n```\n\nOnce you get a token, you can create an instance of the iot-api client:\n\n```python\nimport iot_api_client as iot\nfrom iot_api_client.exceptions import ApiException\nfrom iot_api_client.models import *\nfrom iot_api_client.configuration import Configuration\nfrom iot_api_client.api import DevicesV2Api\n\n# configure and instance the API client\nclient_config = Configuration(host=\"https://api2.arduino.cc\")\nclient_config.access_token = YOUR_ACCESS_TOKEN\nclient = iot.ApiClient(client_config)\n\n# as an example, interact with the devices API\ndevices_api = deviceApi.DevicesV2Api(client)\n\nclient_config = Configuration(host=\"https://api2.arduino.cc\")\nclient_config.access_token = access_token\nclient = iot.ApiClient(client_config)\n\ntry:\n api_instance = DevicesV2Api(client)\n api_response = api_instance.devices_v2_list()\n for device in api_response:\n print(device.name+\" - id:\"+device.id+\" - type:\"+device.type)\n\nexcept ApiException as e:\n print(\"Exception when calling DevicesV2Api->devices_v2_list: %s\\n\" % e)\n```\n\nIn case of organization access, you can specify organization identifier in this way:\n\n```python\nclient = iot.ApiClient(client_config,header_name=\"X-Organization\",header_value=org_id)\n# or you can specify at method level, like:\napi_instance.devices_v2_list(x_organization=\"org_id\")\n```\n\nFor a working example, see [the example folder](https://github.com/arduino/iot-client-py/tree/master/example/main.py) in this repo.\n\n## How to get Arduino IoT Cloud Client Credentials\n\nYou can generate Arduino IoT Cloud Client Credentials in `API Keys` section in the [IoT Cloud](https://app.arduino.cc/api-keys):\n\n### Step 1\n\n\n\n### Step 2\n\n\n\n### Step 3\n\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Arduino Iot API Python Client",
"version": "3.0.0",
"project_urls": null,
"split_keywords": [
"openapi",
" openapi-generator",
" iot api"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "38ea8fcc5fb25ff4b261594c848e1129e232f0d850cfb42593c7dccac1a9b496",
"md5": "ea059e598cf9c5c6028107ec1182c9f4",
"sha256": "105285ebddec3cfda68f4da96bae47ae86a9eea86ce02a2d068ff7675278e6ed"
},
"downloads": -1,
"filename": "arduino_iot_client-3.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ea059e598cf9c5c6028107ec1182c9f4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 234663,
"upload_time": "2024-10-28T08:08:09",
"upload_time_iso_8601": "2024-10-28T08:08:09.365661Z",
"url": "https://files.pythonhosted.org/packages/38/ea/8fcc5fb25ff4b261594c848e1129e232f0d850cfb42593c7dccac1a9b496/arduino_iot_client-3.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-28 08:08:09",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "arduino-iot-client"
}