Share Views

Share views to the specified users.

REQUEST URI

https://<ZohoAnalytics_Server_URI>/restapi/v2/workspaces/<workspace-id>/share

Post

oauthscopeZohoAnalytics.share.create

QUERY PARAMETERS

 

Parameter Name
Description
CONFIG*JSONObject

Config parameter specifications are available in the below section.

FIELDS FOR CONFIG JSON

KeyDescription
emailIds*JSONArray

The email address of the users to whom the views need to be shared.

Sample: ["emailId1","emailId2"]
viewIds*JSONArray

View ids which to be shared.

Sample: ["viewId1","viewId2"]
groupIdsJSONArray

The ids of the groups to which the views need to be shared.
permissions*JSONObject

Permissions JSON object (permission attributes table).

Sample: {"read":true,"vud":true,"export":true}
criteriaString

To apply filter criteria while sharing a view to users. The specified criteria will be applied to the reports shared, thereby filtering the data viewed, when the report is accessed by the shared user.

Sample: {"criteria":"\"SalesTable\".\"Region\"='East'"}
Refer this link for more details about how to construct a criteria.
inheritParentFilterCriteriaBoolean

This is valid only for reports(not tables). If true, then its parent tables’ criteria is also taken into account while sharing.
inviteMailBoolean

To send the invitation mail to the provided email addresses.
inviteMailCCMeBoolean

to CC the invitation mail to you on sharing.
mailSubjectString

Invitation mail subject.
mailMessageString

Invitation mail messasge.
domainNameString

Name of domian.
To to share views to the white label domain.
columnsArray of JSONObject

To limit the share option to specified columns from specified tables.

Sample: [{"tableName":"table1","columnNames":["column1","column2"]}]
vudColumnsArray of JSONObject

To limit the view underlying data option to specified columns from specified tables.
This will be valid only if the vud permission is set to true.

Sample: [{"tableName":"table1","columnNames":["column1","column2"]}]
drillColumnsArray of JSONObject

To limit the drill down option to specified columns from specified tables.
This will be valid only if the drillDown permission is set to true.

Sample: [{"tableName":"table1","columnNames":["column1","column2"]}]
includeAllColsForVUDBoolean

To specify if all columns in the table included in the underlying data. 
Default value - false.

PERMISSION ATTRIBUTES

KeyDescription
read*Boolean

Permission to access the view.
Should be true.
exportBoolean

Permission to export the view data.
Default value - false.
vudBoolean

Permission to view the underlying data.
Default value - false.
drillDownBoolean

Permission to drill down in a chart.
Default value - false.
addRowBoolean

Permission to add a row in the table.
Default value - false.
updateRowBoolean

Permission to update a row in the table.
Default value - false.
deleteRowBoolean

Permission to delete a row in the table.
Default value - false.
deleteAllRowsBoolean

Permission to delete all rows in the table.
Default value - false.
importAppendBoolean

Permission to import data into the table using APPEND option.
Default value - false.
importAddOrUpdateBoolean

Permission to import data into the table using UPDATEADD option.
Default value - false.
importDeleteAllAddBoolean

Permission to import data into the table using the TRUNCATEADD option.
Default value - false.
shareBoolean

Permission to share the view to other users.
Default value - false.
discussionBoolean

Permission to allow commenting in the view.
Default value - false.

POSSIBLE ERROR CODES

7103, 7104, 7301, 7387, 8060, 8078, 8079, 8083, 8504, 8518, 8535

Sample Request:

Copiedcurl https://analyticsapi.zoho.com/restapi/v2/workspaces/<workspace-id>/share?CONFIG=<encoded_json_value> 
-X 'POST' 
-H 'ZANALYTICS-ORGID: <org-id>' 
-H 'Authorization: Zoho-oauthtoken <access_token>'
Copiedusing System;
using System.Collections.Generic;
using ZohoAnalytics;

namespace ZohoAnalyticsTest
{
    class Program
    {
        long orgId = 55522777;
        long workspaceId = 35130000001055707;

        public void ShareViews(IAnalyticsClient ac)
        {
            List<long> viewIds = new List<long>();
            viewIds.Add(35730000007354002);
            List<string> emailIds = new List<string>();
            emailIds.Add("testuser+1@zoho.com");
            Dictionary<string, bool> permissions = new Dictionary<string, bool>();
            permissions.Add("read", true);
            IWorkspaceAPI ws = ac.GetWorkspaceInstance(orgId, workspaceId);
            ws.ShareViews(viewIds, emailIds, permissions, null);
            Console.WriteLine("success");
        }

        static void Main(string[] args)
        {
            string clientId = "1000.xxxxxxx";
            string clientSecret = "xxxxxxx";
            string refreshToken = "1000.xxxxxxx.xxxxxxx";

            try
            {
                IAnalyticsClient ac = new AnalyticsClient(clientId, clientSecret, refreshToken);
                Program obj = new Program();
                obj.ShareViews(ac);
            }
            catch (ServerException ex)
            {
                Console.WriteLine("Server exception - " + ex.GetErrorMessage());
            }
            catch (Exception ex)
            {
                Console.WriteLine("Other exception - " + ex.Message);
            }
        }
    }
}
Copiedpackage main

import (
    "fmt"
    ZAnalytics "zoho/pkg/analyticsclient"
)

var(
    clientId = "1000.xxxxxxx"
    clientSecret = "xxxxxxx"
    refreshToken = "1000.xxxxxxx.xxxxxxx"

    orgId = "55522777"
    workspaceId = "35130000001055707"
)

func ShareViews(ac ZAnalytics.Client) {

    viewids := [1]string{}
    viewids[0] = "35130000001354002"

    emailids := [1]string{}
    emailids[0] = "user+1@zoho.com"

    permissions := map[string]bool{}
    permissions["read"] = true

    config := map[string]interface{}{}

    workspace := ZAnalytics.GetWorkspaceInstance(&ac, orgId, workspaceId)
    err := workspace.ShareViews(viewids, emailids, permissions, config)
    if(err != nil){
        fmt.Println("Error - " + err.ErrorMessage)
    }else{
        fmt.Println("success")
    }
}

func main() {

    ac := ZAnalytics.GetAnalyticsClient(clientId, clientSecret, refreshToken)
    ShareViews(ac)

}
Copiedimport com.zoho.analytics.client.*;
import org.json.*;

public class Test {

    private long orgId = 55522777l;
    private long workspaceId = 35130000001055707l;

    public static void main(String args[]){

        String clientId = "1000.xxxxxxx";
        String clientSecret = "xxxxxxx";
        String refreshToken = "1000.xxxxxxx.xxxxxxx";

        Test tObj = new Test();
        AnalyticsClient ac = new AnalyticsClient(clientId, clientSecret, refreshToken);

        try {
            tObj.shareViews(ac);
        }
        catch (ServerException ex) {
            System.out.println("Server exception - ErrorCode : " + ex.getErrorCode() + ", ErrorMessage : "  + ex.getErrorMessage());
        }
        catch (ParseException ex) {
            System.out.println("Parser exception - ErrorMessage : "  + ex.getResponseMessage());
        }
        catch (Exception ex) {
            System.out.println("Other exception - ");
            ex.printStackTrace();
        }
    }

    public void shareViews(AnalyticsClient ac) throws Exception {
        WorkspaceAPI workspace = ac.getWorkspaceInstance(orgId, workspaceId);
        JSONArray emailIds = new JSONArray();
        emailIds.put("user+1@zoho.com");
        emailIds.put("user+2@zoho.com");
        JSONArray viewIds = new JSONArray();
        viewIds.put("35730000007354002");
        JSONObject permissions = new JSONObject();
        permissions.put("read", true);
        workspace.shareViews(viewIds, emailIds, permissions, null);
        System.out.println("success");
    }
}
Copied<?php

    require 'AnalyticsClient.php';

    class Test
    {
        public $ac = NULL;
        public $client_id = "1000.xxxxxxx";
        public $client_secret = "xxxxxxx";
        public $refresh_token = "1000.xxxxxxx.xxxxxxx";

        public $org_id = "55522777";
        public $workspace_id = "35130000001055707";

        function __construct() {
            $this->ac =  new AnalyticsClient($this->client_id, $this->client_secret, $this->refresh_token);
        }

        function shareViews() {

            $view_ids = array("35130000001353002", "35130000001355005");
            $email_ids = array("user+1@zoho.com", "user+2@zoho.com");
            $permissions = array();
            $permissions["read"] = "true";

            $workspace = $this->ac->getWorkspaceInstance($this->org_id, $this->workspace_id);
            $workspace->shareViews($view_ids, $email_ids, $permissions);
            echo "success\n";
        }
    }

    $test_obj = new Test();

    try {
        $test_obj->shareViews();
    }
    catch(ServerException $se) {
        echo "Server exception : " . $se->getErrorMessage() . "\n";
    }
    catch(IOException $ioe) {
        echo "IO exception : " . $ioe->getErrorMessage() . "\n";
    }
    catch(ParseException $pe) {
        echo "Parser exception : " . $pe->getErrorMessage() . "\n";
    }
    catch(Exception $e) {
        echo "Exception : " . $e->getErrorMessage() . "\n";
    }
?>
Copiedfrom __future__ import with_statement
from AnalyticsClient import AnalyticsClient
import sys
import json

class Config:

    CLIENTID = "1000.xxxxxxx";
    CLIENTSECRET = "xxxxxxx";
    REFRESHTOKEN = "1000.xxxxxxx.xxxxxxx";

    ORGID = "55522777";
    WORKSPACEID = "35130000001055707";

class sample:

    ac = AnalyticsClient(Config.CLIENTID, Config.CLIENTSECRET, Config.REFRESHTOKEN)

    def share_views(self, ac):
        view_ids = []
        view_ids.append("35730000007354002")

        email_ids = []
        email_ids.append("user+1@zoho.com")

        permissions = {}
        permissions["read"] = True
        workspace = ac.get_workspace_instance(Config.ORGID, Config.WORKSPACEID)
        workspace.share_views(view_ids, email_ids, permissions)
        print("success")

try:
    obj = sample()
    obj.share_views(obj.ac);

except Exception as e:
    print(str(e))
Copiedvar analyticsClient = require('./AnalyticsClient');

var clientId = '1000.xxxxxxx';
var clientSecret = 'xxxxxxx';
var refreshtoken = '1000.xxxxxxx.xxxxxxx';
var orgId = '55522777';
var workspaceId = '35130000001055707';

var viewIds = [];
var emailIds = [];
var permissions = {};

var ac = new analyticsClient(clientId, clientSecret, refreshtoken);

var config = {};

viewIds.push('');
viewIds.push('');

emailIds.push('');
emailIds.push('');

permissions['read'] = true;
permissions['share'] = true;
var workspace = ac.getWorkspaceInstance(orgId, workspaceId);
workspace.shareViews(viewIds, emailIds, permissions, config).catch((error) => {
    console.log('errorCode : '+error.errorCode);
    console.log('errorMessage : '+error.errorMessage);
});
CopiedorgId = "55522777";
workspaceId = "35130000001055707";

headersMap = Map();
headersMap.put("ZANALYTICS-ORGID",orgId);

emailIds = {};
emailIds.add("user+1@zoho.com");
emailIds.add("user+2@zoho.com");
viewIds = {};
viewIds.add("35130000001354002");
viewIds.add("35130000001355005");
permissions = Map();
permissions.put("read","true");
permissions.put("export","true");

config = Map();
config.put("emailIds",emailIds);
config.put("viewIds",viewIds);
config.put("permissions",permissions);
paramsMap = Map();
paramsMap.put("CONFIG",config.toString());

response = invokeurl
[
  url :"https://analyticsapi.zoho.com/restapi/v2/workspaces/" + workspaceId + "/share"
  type :POST
  parameters:paramsMap
  headers:headersMap
  connection:"analytics_oauth_connection"
];

Sample value for CONFIG parameter:

Copied{
  "emailIds": ["<email-id1>", "<email-id2>"],
  "viewIds": ["<view-id1>", "<view-id2>"],
  "permissions": {
    "read": "true",
    "export": "true"
  }
}

Sample Response:

CopiedHTTP/1.1 204 No Content

Download client libraries:  C# | GO | JAVA | PHP | PYTHON | NodeJS