45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
		
		
			
		
	
	
			45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
| 
								 | 
							
								# API Samples
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This directory contains a simple Sinatra web app illustrating how to use the client
							 | 
						||
| 
								 | 
							
								in a server-side web environment.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								It illustrates a few key concepts:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* Using [Google Sign-in](https://developers.google.com/identity) for authentication.
							 | 
						||
| 
								 | 
							
								* Using the [googleauth gem](https://github.com/google/google-auth-library-ruby) to
							 | 
						||
| 
								 | 
							
								  request incremental authorization as more permissions are needed.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Setup
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* Create a project at https://console.developers.google.com
							 | 
						||
| 
								 | 
							
								* Go to the `API Manager` and enable the `Drive` and `Calendar` APIs
							 | 
						||
| 
								 | 
							
								* Go to `Credentials` and create a new OAuth Client ID of type 'Web application'
							 | 
						||
| 
								 | 
							
								    * Use `http://localhost:4567/oauth2callback` as the redirect URL
							 | 
						||
| 
								 | 
							
								    * Use `http://localhost:4567` as the JavaScript origin
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Additional details on how to enable APIs and create credentials can be
							 | 
						||
| 
								 | 
							
								found in the help guide in the console.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Example Environment Settings
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								For convenience, application credentials can be read from the shell environment
							 | 
						||
| 
								 | 
							
								or placed in a .env file.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								After setup, your .env file might look something like:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								GOOGLE_CLIENT_ID=479164972499-i7j6av7bp2s4on5ltb7pjXXXXXXXXXX.apps.googleusercontent.com
							 | 
						||
| 
								 | 
							
								GOOGLE_CLIENT_SECRET=JBotCTG5biFWGzXXXXXXXXXX
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Running the samples
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								To start the server, run
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								ruby app.rb
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Open `http://localhost:4567/` in your browser to explore the sample.
							 | 
						||
| 
								 | 
							
								
							 |