Update Shared Details For View

Update the existing sharing configuration for views.

REQUEST URI

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

Put

oauthscope: ZohoAnalytics.share.update

QUERY PARAMETERS

Parameter NameDescription
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"]
groupIds*JSONArray

Ids of the group for which the views need to be shared.

Sample: ["viewId1","viewId2"]
columnsArray of JSONObject

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

Sample:  [{"tableName":"table1","columnNames":["column1","column2"]}]
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.
domainNameString

Name of domain.
To share views to the white label domain.

POSSIBLE ERROR CODES

7103, 7104, 7301, 7330, 7331 , 7338 , 8083, 8509

Sample Request:

Copiedcurl https://analyticsapi.zoho.com/restapi/v2/workspaces/<workspace-id>/views/<view-id>/share --data-urlencode 'CONFIG={"permissions":{"read":"true"},"emailIds":["<email-id1>","<email-id2>"]}' 
-X 'PUT' 
-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;
        long viewId = 35730000007354002;

        public void UpdateSharedDetails(IAnalyticsClient ac)
        {
            List<string> emailIds = new List<string>();
            emailIds.Add("testuser_1@zoho.com");
            Dictionary<string, bool> permissions = new Dictionary<string, bool>();
            permissions.Add("read", true);
            permissions.Add("export", true);

            Dictionary<string, object> config = new Dictionary<string, object>();
            config.Add("emailIds", emailIds);
            config.Add("permissions", permissions);

            IViewAPI view = ac.GetViewInstance(orgId, workspaceId, viewId);
            view.UpdateSharedDetails(config);
            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.UpdateSharedDetails(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"
    viewId = "35730000007354002"
)

func UpdateSharedDetails(ac ZAnalytics.Client) {

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

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

    config := map[string]interface{}{}
    config["emailIds"] = emailids
    config["permissions"] = permissions

    view := ZAnalytics.GetViewInstance(&ac, orgId, workspaceId, viewId)
    err := view.UpdateSharedDetails(config)
    if(err != nil){
        fmt.Println("Error - " + err.ErrorMessage)
    }else{
        fmt.Println("success")
    }
}

func main() {

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

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

public class Test {

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

    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.updateSharedDetails(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 updateSharedDetails(AnalyticsClient ac) throws Exception {

        JSONArray emailIds = new JSONArray();
        emailIds.put("testuser_1@zoho.com");

        JSONObject permissions = new JSONObject();
        permissions.put("read", true);
        permissions.put("export", false);

        JSONObject config = new JSONObject();
        config.put("emailIds", emailIds);
        config.put("permissions", permissions);

        ViewAPI view = ac.getViewInstance(orgId, workspaceId, viewId);
        view.UpdateSharedDetails(config);
        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";
        public $view_id = "35730000007354002";

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

        function updateSharedDetails() {
        
            $email_ids = array("testuser_1@zoho.com");
            $permissions = array();
            $permissions["read"] = "true";
            $permissions["export"] = "true";

            $config = array();
            $config["emailIds"] = $email_ids;
            $config["permissions"] = $permissions;
            
            $view = $this->ac->getViewInstance($this->org_id, $this->workspace_id, $this->view_id);
            $view->updateSharedDetails($config);
            echo "success\n";
        }
    }

    $test_obj = new Test();

    try {
        $test_obj->updateSharedDetails();
    }
    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";
    VIEWID = "35730000007354002";

class sample:

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

    def update_shared_details(self, ac):        
        email_ids = []
        email_ids.append("testuser_1@zoho.com")
        
        permissions = {}
        permissions["read"] = True
        permissions["export"] = True

        conf = {}
        conf["emailIds"] = email_ids
        conf["permissions"] = permissions

        view = ac.get_view_instance(Config.ORGID, Config.WORKSPACEID, Config.VIEWID)
        view.update_shared_details(conf)
        print("success")

try:
    obj = sample()
    obj.update_shared_details(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 viewId = '35730000007354002';

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

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

var config = {};

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

permissions['read'] = true;
permissions['share'] = true;

config['emailIds'] = emailIds;
config['permissions'] = permissions;

var view = ac.getViewInstance(orgId, workspaceId, viewId);
view.updateSharedDetails(config).catch((error) => {
    console.log('errorCode : '+error.errorCode);
    console.log('errorMessage : '+error.errorMessage);
});
CopiedorgId = "55522777";
workspaceId = "35130000001055707";
viewId = "35130000004356002";

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

emailIds = {};
emailIds.add("user+1@zoho.com");
emailIds.add("user+2@zoho.com");

permissions = Map();
permissions.put("read","true");
permissions.put("export","true");

config = Map();
config.put("emailIds",emailIds);
config.put("permissions",permissions);

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

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

Download SDK : C# | GO | JAVA | PHP | PYTHON | NodeJS

Sample value for CONFIG parameter:

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

Sample Response:

CopiedHTTP/1.1 204 No Content