Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

secret description fixed #1510

Merged
merged 3 commits into from
Dec 11, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 0 additions & 44 deletions module/move/gspread/.key/readme.md

This file was deleted.

39 changes: 39 additions & 0 deletions module/move/gspread/.secret/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Getting API Keys for OAuth Authentication

Follow these steps to create and configure your OAuth credentials for using Google APIs.

## 1. Create API Credentials

1. Go to the [Google API Console](https://console.developers.google.com/).
2. From the projects list, select an existing project or create a new one.
3. In the left side menu, select **APIs & Services**.
4. On the left menu, click **Credentials**.
5. Click **Create Credentials** and select **OAuth client ID**.
6. In the **Application type** section, select **Desktop app**.
7. Provide an appropriate name for your client ID (e.g., "Gspread OAuth Client").
8. Click **Create**.

Once the credential is created, you will receive a **Client ID** and **Client Secret**. These are required for accessing the API.

## 2. Store Your Credentials

Save the **Client ID** and **Client Secret** in a `.env` within a `.secret` directory. The file should look like this:

```bash
CLIENT_ID=YOUR_CLIENT_ID
CLIENT_SECRET=YOUR_SECRET_KEY
```


# Troubleshooting

If you encounter problems with authentication or tokens, you will most likely need to add **AUTH_URI** or **TOKEN_URI** to the .env file. To retrieve them, download the API key you created in JSON format. Open the file and copy the keys into the .env file. After making these changes, your .env file should look like this:

```bash
sevabakutov marked this conversation as resolved.
Show resolved Hide resolved
CLIENT_ID=YOUR_CLIENT_ID
CLIENT_SECRET=YOUR_SECRET_KEY
AUTH_URI=YOUR_AUTH_URI
TOKEN_URI=YOUR_TOKEN_URI
```

If you still get some issues, follow [Google OAuth Documentation](https://developers.google.com/identity/protocols/oauth2/).
2 changes: 1 addition & 1 deletion module/move/gspread/src/bin/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ async fn main() -> Result< (), Box< dyn Error > >
{
dotenv().ok();

let secret = Secret::load()?;
let secret = Secret::read();

let hub = hub( &secret ).await?;

Expand Down
14 changes: 7 additions & 7 deletions module/move/gspread/src/secret.rs
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ mod private
#[ allow( non_snake_case ) ]
pub fn load() -> Result< Self >
{
let path = "./.key/-env.sh";
let path = "./.secret/.env";

let r = dotenv::from_path( path );
if let Err( ref err ) = r
Expand All @@ -67,8 +67,8 @@ mod private
{
CLIENT_SECRET : var( "CLIENT_SECRET", None )?,
CLIENT_ID : var( "CLIENT_ID", None )?,
AUTH_URI : var ( "AUTH_URI", None )?,
TOKEN_URI : var ( "TOKEN_URI", None )?
AUTH_URI : var ( "AUTH_URI", Some( "https://accounts.google.com/o/oauth2/auth" ) )?,
TOKEN_URI : var ( "TOKEN_URI", Some( "https://oauth2.googleapis.com/token" ) )?
};
Ok( config )
}
Expand All @@ -77,7 +77,7 @@ mod private
{
Self::load().unwrap_or_else( | err |
{
let example = include_str!("../.key/readme.md");
let example = include_str!("../.secret/readme.md");
let explanation = format!
(
r#" = Lack of secrets
Expand All @@ -87,7 +87,7 @@ Failed to load secret or some its parameters.

= Fix

Either define missing environment variable or make sure `./.key/-env.toml` file has it defined.
Add missing secret to .env file in .secret directory. Example: MISSING_SECRET=YOUR_MISSING_SECRET

= More information

Expand All @@ -109,10 +109,10 @@ Either define missing environment variable or make sure `./.key/-env.toml` file
fn var
(
name : &'static str,
default : Option<&'static str>,
default : Option< &'static str >,
) -> Result < String >
{
match env::var(name)
match env::var( name )
{
Ok( val ) => Ok ( val ),
Err( _ ) =>
Expand Down
Loading