arduino-iot-client


Namearduino-iot-client JSON
Version 3.0.0 PyPI version JSON
download
home_pageNone
SummaryArduino Iot API Python Client
upload_time2024-10-28 08:08:09
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseNone
keywords openapi openapi-generator iot api
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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

![IoT Cloud](img/api_step1.png)

### Step 2

![IoT Cloud](img/api_step2.png)

### Step 3

![IoT Cloud](img/api_step3.png)

            

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![IoT Cloud](img/api_step1.png)\n\n### Step 2\n\n![IoT Cloud](img/api_step2.png)\n\n### Step 3\n\n![IoT Cloud](img/api_step3.png)\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"
}
        
Elapsed time: 1.03869s