question

chris-goetz avatar image
chris-goetz asked benjamin-dean answered

What permissions are required for retrieving the address book?

While using the API Explorer to get the json response for retrieving the address book we receive a response indicating insufficient permissions. No matter what permissions we add to our application in the developer portal, we still receive this error. Do we need to request additional permissions for our application to use the address book?

permissions
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

benjamin-dean avatar image
benjamin-dean answered
Hey Chris,

You're right...it isn't on there. I've submitted a ticket to add this to our official documentation, and I've reached out to our Platform Architect to request the right permission. Once he responds, I'll share that on here.

Thanks a bunch!
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

John Wang avatar image
John Wang Deactivated answered

Hi Chris,


You need the ReadContacts advanced permission to read the address book. Please contact our support team or open a support ticket to get this permission added to your app.


Thanks.

1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

chris-goetz avatar image
chris-goetz answered
Got it.  Thanks!
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

chris-goetz avatar image
chris-goetz answered
Where might i find the documentation for retrieving contacts?  It doesn't seem to be in the developers guide and it seems to have disappeared from the API explorer.  Looking for documentation that would show us how to retrieve either personal or company contacts (or both) to make it convenient to send faxes or perform a ringout.
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

benjamin-dean avatar image
benjamin-dean answered
Hello Chris,

I've switched this conversation to be private since we don't want just anyone to know about the API's Address Book resource just yet. That being said, please do not share this information I'm providing you about the Address Book resource. Before I provide you with the address-book documentation, I need to you to confirm that you are fully aware that the interface for Address Book resources may change in the future without warning.

You'll need to add the special permissions (ReadContacts & Contacts), which Anil provisioned to your account, on the application associated with the API Keys you're using for this resource. You can do that in Developer Portal => Applications => [YOUR_APP] => Application Information => Application Permissions.

Once I receive your confirmation that this may change without notice or warning, then I will supply you with the Address Book resource interface information.

Thanks,
Benjamin Dean
Developer Relations Manager
RingCentral Connect Platform
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

chris-goetz avatar image
chris-goetz answered
I confirm that you are fully aware that the interface for Address Book resources may change in the future without warning.  We are attempting to test our methods for retrieving information as well as the API itself.  If it changes in the future, we will likely be able to adjust fairly quickly.  Any documentation you can provide would be great.  Thanks.
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

benjamin-dean avatar image
benjamin-dean answered
Thank you Chris.

Please let me know if you do not see this full message. It is a JSON representation of the Address Book resource.

It should end with this: /******************JSON END**********************/

Here you go sir...good luck, and let me know how things are going (would love to have you write up a quick case-study of your RingCentral integration.

Happy Holidays,
Benjamin Dean
Developer Relations Manager
RingCentral, Inc.

/******************JSON START*******************/
{  "/v1.0/account/{accountId}/extension/{extensionId}/address-book/contact": {
      "get": {
          "tags": [
              "Address Book"
          ],
          "summary": "Get Address Book",
          "produces": [
              "application/json"
          ],
          "consumes": [
              "application/json"
          ],
          "parameters": [
              {
                  "name": "accountId",
                  "in": "path",
                  "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account which was logged-in within the current session",
                  "notes": "",
                  "paramType": "path",
                  "defaultValue": "~",
                  "required": true,
                  "allowMultiple": false,
                  "dataType": "long",
                  "type": "string",
                  "format": "string"
              },
              {
                  "name": "extensionId",
                  "in": "path",
                  "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
                  "notes": "",
                  "paramType": "path",
                  "defaultValue": "~",
                  "required": true,
                  "allowMultiple": false,
                  "dataType": "long",
                  "type": "string",
                  "format": "string"
              }
          ]
      },
      "post": {
          "tags": [
              "Address Book"
          ],
          "summary": "Create Single Contact",
          "produces": [
              "application/json"
          ],
          "consumes": [
              "application/json"
          ],
          "parameters": [
              {
                  "name": "accountId",
                  "in": "path",
                  "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account which was logged-in within the current session",
                  "notes": "",
                  "paramType": "path",
                  "defaultValue": "~",
                  "required": true,
                  "allowMultiple": false,
                  "dataType": "long",
                  "type": "string",
                  "format": "string"
              },
              {
                  "name": "extensionId",
                  "in": "path",
                  "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
                  "notes": "",
                  "paramType": "path",
                  "defaultValue": "~",
                  "required": true,
                  "allowMultiple": false,
                  "dataType": "long",
                  "type": "string",
                  "format": "string"
              },
              {
                  "name": "body",
                  "in": "body",
                  "description": "A JSON body with contact informaion where firstName, lastName, middleName, nickName are strings - representing contact name; company, jobTitle are strings - contact job; homePhone, homePhone2, businessPhone, businessPhone2, mobilePhone, businessFax, companyPhone, assistantPhone, carPhone, otherPhone, otherFax, callbackPhone are strings - contact phone numbers; email, email2, email3 are strings - contact email addresses; homeAddress, , are Contact Address Info objects - contact post addresses; birthday is a string - contact's date of birth; webPage is a string - contact's web page URL; notes is a string - extra notes for contact",
                  "defaultValue": "{\n  \"firstName\": \"Vanessa\", \n  \"lastName\": \"May\", \n  \"businessAddress\": { \n    \"street\": \"2 Marina Blvd\", \n    \"city\": \"San-Francisco\", \n    \"state\": \"CA\", \n    \"zip\": \"94123\" \n } \n}",
                  "required": true,
                  "type": "string",
                  "format": "string"
              }
          ]
      }
  },
  "/v1.0/account/{accountId}/extension/{extensionId}/address-book/contact/{contactId}": {
      "get": {
          "tags": [
              "Address Book"
          ],
          "summary": "Get Contact",
          "produces": [
              "application/json"
          ],
          "consumes": [
              "application/json"
          ],
          "parameters": [
              {
                  "name": "accountId",
                  "in": "path",
                  "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account which was logged-in within the current session",
                  "notes": "",
                  "paramType": "path",
                  "defaultValue": "~",
                  "required": true,
                  "allowMultiple": false,
                  "dataType": "long",
                  "type": "string",
                  "format": "string"
              },
              {
                  "name": "extensionId",
                  "in": "path",
                  "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
                  "notes": "",
                  "paramType": "path",
                  "defaultValue": "~",
                  "required": true,
                  "allowMultiple": false,
                  "dataType": "long",
                  "type": "string",
                  "format": "string"
              },
              {
                  "name": "contactId",
                  "in": "path",
                  "description": "Internal identifier of a contact record in the RingCentral database",
                  "required": true,
                  "allowMultiple": true,
                  "type": "string",
                  "format": "string"
              }
          ]
      },
      "put": {
          "tags": [
              "Address Book"
          ],
          "summary": "Modify Contact",
          "produces": [
              "application/json"
          ],
          "consumes": [
              "application/json"
          ],
          "parameters": [
              {
                  "name": "accountId",
                  "in": "path",
                  "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account which was logged-in within the current session",
                  "notes": "",
                  "paramType": "path",
                  "defaultValue": "~",
                  "required": true,
                  "allowMultiple": false,
                  "dataType": "long",
                  "type": "string",
                  "format": "string"
              },
              {
                  "name": "extensionId",
                  "in": "path",
                  "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
                  "notes": "",
                  "paramType": "path",
                  "defaultValue": "~",
                  "required": true,
                  "allowMultiple": false,
                  "dataType": "long",
                  "type": "string",
                  "format": "string"
              },
              {
                  "name": "contactId",
                  "in": "path",
                  "description": "Internal identifier of a contact record in the RingCentral database",
                  "required": true,
                  "allowMultiple": false,
                  "type": "string",
                  "format": "string"
              }
          ]
      },
      "delete": {
          "tags": [
              "Address Book"
          ],
          "summary": "Delete Contact",
          "produces": [
              "application/json"
          ],
          "consumes": [
              "application/json"
          ],
          "parameters": [
              {
                  "name": "accountId",
                  "in": "path",
                  "description": "Internal identifier of a RingCentral account or tilde (~) to indicate the account which was logged-in within the current session",
                  "notes": "",
                  "paramType": "path",
                  "defaultValue": "~",
                  "required": true,
                  "allowMultiple": false,
                  "dataType": "long",
                  "type": "string",
                  "format": "string"
              },
              {
                  "name": "extensionId",
                  "in": "path",
                  "description": "Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session",
                  "notes": "",
                  "paramType": "path",
                  "defaultValue": "~",
                  "required": true,
                  "allowMultiple": false,
                  "dataType": "long",
                  "type": "string",
                  "format": "string"
              },
              {
                  "name": "contactId",
                  "in": "path",
                  "description": "Internal identifier of a contact record in the RingCentral database",
                  "required": true,
                  "allowMultiple": true,
                  "type": "string",
                  "format": "string"
              }
          ]
      }
  }
}
/******************JSON END**********************/
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Developer sandbox tools

Using the RingCentral Phone for Desktop, you can dial or receive test calls, send and receive test SMS or Fax messages in your sandbox environment.

Download RingCentral Phone for Desktop:

Tip: switch to the "sandbox mode" before logging in the app:

  • On MacOS: press "fn + command + f2" keys
  • On Windows: press "Ctrl + F2" keys