mirror of
https://github.com/EvolutionAPI/adk-python.git
synced 2025-07-13 07:04:51 -06:00
|
||
---|---|---|
.. | ||
__init__.py | ||
agent.py | ||
README.md |
Application Integration Agent Sample with End-User Credentials
Introduction
This sample demonstrates how to use the ApplicationIntegrationToolset
within
an ADK agent to interact with external applications using end-user OAuth 2.0
credentials. Specifically, this agent (agent.py
) is configured to interact
with Google Calendar using a pre-configured Application Integration connection
and authenticating as the end user.
Prerequisites
-
Set up Integration Connection:
- You need an existing
Integration connection
configured to interact with Google Calendar APIs. Follow the
documentation
to provision the Integration Connector in Google Cloud. You will need
the
Connection Name
,Project ID
, andLocation
of your connection. - Ensure the connection is configured to use Google Calendar (e.g., by
enabling the
google-calendar-connector
or a similar connector).
- You need an existing
Integration connection
configured to interact with Google Calendar APIs. Follow the
documentation
to provision the Integration Connector in Google Cloud. You will need
the
-
Configure OAuth 2.0 Client:
- You need an OAuth 2.0 Client ID and Client Secret that is authorized to
access the required Google Calendar scopes (e.g.,
https://www.googleapis.com/auth/calendar.readonly
). You can create OAuth credentials in the Google Cloud Console under "APIs & Services" -> "Credentials".
- You need an OAuth 2.0 Client ID and Client Secret that is authorized to
access the required Google Calendar scopes (e.g.,
-
Configure Environment Variables:
- Create a
.env
file in the same directory asagent.py
(or add to your existing one). - Add the following variables to the
.env
file, replacing the placeholder values with your actual connection details:
CONNECTION_NAME=<YOUR_CALENDAR_CONNECTION_NAME> CONNECTION_PROJECT=<YOUR_GOOGLE_CLOUD_PROJECT_ID> CONNECTION_LOCATION=<YOUR_CONNECTION_LOCATION> CLIENT_ID=<YOUR_OAUTH_CLIENT_ID> CLIENT_SECRET=<YOUR_OAUTH_CLIENT_SECRET>
- Create a
End-User Authentication (OAuth 2.0)
This agent utilizes the AuthCredential
and OAuth2Auth
classes from the ADK
to handle authentication.
- It defines an OAuth 2.0 scheme (
oauth2_scheme
) based on Google Cloud's OAuth endpoints and required scopes. - It uses the
CLIENT_ID
andCLIENT_SECRET
from the environment variables (or hardcoded values in the sample) to configureOAuth2Auth
. - This
AuthCredential
is passed to theApplicationIntegrationToolset
, enabling the tool to make authenticated API calls to Google Calendar on behalf of the user running the agent. The ADK framework will typically handle the OAuth flow (e.g., prompting the user for consent) when the tool is first invoked.
How to Use
- Install Dependencies: Ensure you have the necessary libraries installed
(e.g.,
google-adk
,python-dotenv
). - Run the Agent: Execute the agent script from your terminal:
python agent.py
- Interact: Once the agent starts, you can interact with it. If it's the first time using the tool requiring OAuth, you might be prompted to go through the OAuth consent flow in your browser. After successful authentication, you can ask the agent to perform tasks.
Sample Prompts
Here are some examples of how you can interact with the agent:
Can you list events from my primary calendar?