Kazoo OAuth Integration
Overview
Kazoo can be configured to use third-party resources such as authentication, storage, etc.
Kazoo as a OAuth Client
- Create the oauth consumer in the third-party system (google, Microsoft, Salesforce, …).
- Register the consumer in kazoo.
- Use
kz_auth_client
to obtain atoken
to use the third-party resources
Using Google Drive for voicemails
-
Create a new Project in https://console.developers.google.com 1.1 After you are logged in go to https://console.developers.google.com/ 1.2 Look for
Google Drive API
in the search field and open it 1.3 Click Enable button (in case you don’t have it enabled yet) 1.4 Do the same forGoogle+ API
(search for it and enable it) 1.5 On the left hand sidebar, click Credentials 1.6 Click OAuth consent screen tab and fill the form with the corresponding information 1.7 Click Credentials tab 1.8 In the Create credentials drop-down menu select OAuth client ID 1.9 Application type: Web application 1.10 Name it and then click on create button 1.11 Take note of the client ID and client secret values (we will need those later) -
Register the auth app: 2.1 example: sup kazoo_auth_maintenance register_auth_app {kazoo_master_account_id} {gdrive_client_ID} {gdrive_client_secret} google
-
Edit index.html in the example dir 3.1 change YOUR_CLIENT_ID and WEB_URL 3.2 navigate to WEB_URL 3.3 click
authorize
3.4 gathercode : xxxx
3.5 call kazoo API /v2/auth/callback (PUT){ "data": { "client_id" : {CLIENT_ID}, "redirect_uri" : {WEB_URL}, "code" : {CODE}, "provider" : "google" } }
3.6 grab the
token
returned and use the page to decode it 3.7 grabauth_id
3.8 use theauth_id
to configure your data_plan$ cat data_plan.json {"data": { "attachments": { "5fa1f134417927ae200fb12879acec71": { "handler": "google_drive", "name": "mydrive", "settings": { "oauth_doc_id": {AUTH_ID} } } }, "id": "{KAZOO_MASTER_ACCOUNT_ID}", "plan": { "modb": { "types": { "mailbox_message": { "attachments": { "handler": "5fa1f134417927ae200fb12879acec71" "params": { "folder_name": "kazoo" }, "stub": true } } } } } } } $ curl -X PUT Kazoo API /v2/accounts/{account_id}/storage \ -H "Content-Type: application/json" -H "X-Auth-Token: {YOUR_KAZOO_TOKEN}" -d @data_plan.json
3.9 leave a voicemail